listes chainées

listes chainées - Java - Programmation

Marsh Posté le 07-04-2008 à 15:59:40    

au fait j'ai implémenté les listes chainées en java mais le programme ne marche pas correctement,j'ai donc besoin de  
l'aide de quelqu'un .voici le programme ci-dessous ,mon but est de saisir les éléments de la listes (entiers) ensuite les afficher
 
package liste;
 
import java.util.Scanner;
import javax.swing.*;
import java.io.*;
import java.util.*;
/**
 *
 * @author Madang
 */
public class liste_ch {
    private int valeur;//contenu de la liste
    private liste_ch svt;//reference sur l'element suivant
     public liste_ch(int v,liste_ch s){
          valeur=v;
          svt=s;
     }
     public liste_ch(){}
     public  int tete( liste_ch l){
        return l.valeur;  
     }
     public  int queue(liste_ch l){
         liste_ch m=l;
      while(l.svt!=null){
           m.svt=l.svt;
      }
         return m.valeur;
               
     }
     public  int getvaleur(){
      return valeur;
     }
     public liste_ch getsvt(){
      return svt;
     }
     public  liste_ch liste_vide(){
      liste_ch l=new liste_ch();
   return l;
       
     }
     public static boolean rechercher(int a,liste_ch l){
         if(l==null) return false;
        while(l!=null) {
        if(a==l.valeur)  return true;
            l=l.svt ;
        }
       return false;
     }
     public static liste_ch ajouter(int a,liste_ch l){
     if(!rechercher(a,l))  
      new liste_ch(a,l);
     return l;
     }
     public static  liste_ch supprimer(int a ,liste_ch l){
         liste_ch lis=l.svt;
         if(l.valeur==a) return lis;
         else while(lis!=null){ if(lis.valeur==a) {l.svt=lis.svt; return l;}
                 lis=lis.svt;
                 l=l.svt;
          }
         return l;
     }
     public static void afficher(liste_ch l){
         int i=1;
       while(l!=null)  {
       System.out.println("\n\t valeur "+i+":"+l.valeur);
       i++;l=l.svt;
       }    
     }
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        boolean hasnext=true;
       String c,n="n",y;
       int i;
       liste_ch l=new liste_ch();
        Scanner input=new Scanner(System.in);
        System.out.println("\nsaisir les élements de votre liste !" );
        while( hasnext==true){
        i=input.nextInt();        
        ajouter(i,l);
        System.out.println("\nun autre entier ? (y/n)" );
        c=input.next();
        if(c.compareToIgnoreCase(n)==0) hasnext=false;
       }
        afficher(l);
        // TODO code application logic here
    }
 
}
 ensuite voici  ce qu'il m'affiche quand je l'execute:
run:
 
saisir les élements de votre liste !
3
 
un autre entier ? (y/n)
 
 
n
 
         valeur 1:0
BUILD SUCCESSFUL (total time: 35 seconds)

Reply

Marsh Posté le 07-04-2008 à 15:59:40   

Reply

Marsh Posté le 07-04-2008 à 18:59:15    

Bonjour,
 
1. Commencer un billet par "au fait" en minuscule est une tournure inadaptée.
2. Majuscules en début de phrase.
3. Balise "code" pour le code.
4. Le programme affiche-t-il vraiment "BUILD SUCCESSFUL" lors de l'exécution?
5. Le programme demande un entier, tu entres "3", puis tu réponds "n" à la question "un autre entier?" et le programme s'arrête. Cela semble parfaitement cohérent.
6. "le programme ne marche pas correctement" Plus exactement? Problème de saisie? Résultat attendu versus résultat observé?


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 08-04-2008 à 04:49:26    

Bonjour  Sircam
1.Merci pour ta remarque concernant la tournure inadaptée,je m'en excuse.
2...........  
3.Je n'ai pas compris ton point 3.
4.J'ai  copier et coller le résultat affiché donc il affiche effectivement "BUILD SUCCESSFUL".
5.Oui cela semble,mais normalement m'afficher le 3 que j'ai entré et non    "valeur 1:0 "
6.Je essayer de revoir la saisie.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed