Rédigé par GC Team, Publié le 21 Mars 2010, Mise à jour le Lundi, 22 Mars 2010 15:24
Participez au vote ☆☆☆☆☆★★★★★
Exercice 1 : dessins
On reprend ici la classe Liste du cours, que l’on rappelle. Pour chacun des points marqués par un commentaire dans la méthode main, dessinez la liste l. Vous utiliserez le même genre de dessins que ceux du cours. On reprend ici la classe Liste du cours, que l’on rappelle. {sidebar id=2}
publicclass ElementListe { privateint valeur ; private ElementListe suivant ; public ElementListe ( intvaleur , Elementiste suivant ){ this . valeur= valeur ; this . suivant= suivant ; } public ElementListe (int v ){ this . valeur= v ; this . suivant=null; } publicint getValeur (){ re turn valeur ; } publicvoid setValeur (int valeur ){ this . valeur= valeur ; } public ElementListe getSuivant (){ return suivant ; } publicvoid setSuivant ( ElementListe suivant ){ this . suivant= suivant ; } } publicclass ListeIter { ElementListe premier ; publicboolean estVide (){ return premier ==null; } public ElementListe getPremier (){ r e turn p r emi e r ; } publicvoid ajouterAuDe but (int v ){ Elemen tListeanc ienPremier= premier ; premier =new El eme ntListe ( v , ancienPremier ); } publicvoid ajouterALaFin (int v ){ if( estVide ()){ premier =new ElementListe ( v ); }else{ ElementListe dernier = getDernierElement (); dernier . setSuivant(new ElementListe ( v )); } } private ElementListe getDernierElement (){ ElementListe dernier = premier ; while( dernier . getSuivant()!=null){ dernier = dernier . getSuivant(); } return dernier ; } publicint getLongueur (){ int longueur =0; ElementListe elt = getPremier (); while( elt !=null){ longueu r++; elt = elt . getSuivant(); } return longueur ; } publicboolean contient (int v ){ boolean trouve =false; ElementListe elt = getPremier (); while(! trouve && elt !=null){ if( elt . getValeur()==v ){ trouve =true; }else{ elt = elt . getSuivant(); } } return trouve ; } publicvoid retirer PremiereOccurrence (int v ){ if( estVide ()) return; if( premier . getValeur()== v ){ premier = premier . getSuivant(); }else{ ElementListe precedent= premier ; ElementListe elt = premier . getSuivant(); while( elt !=null&& elt . getValeur()!= v ){ precedent= elt ; elt = elt . getSuivant(); } if( elt !=null){ precedent . setSuivant( elt . getSuivant()); } } } publicvoid concatener ( ListeIterl ){ if(this . estVide()){ this . premier= l . premier; }else{ ElementListe dernier = getDernierElement (); dernier . setSuivant( l . getPremier()); } } class Exo21_1{ publicstaticvoid main (String[] args ){ ListeIterl =new ListeIter (); // dessin 1 l . ajouterAuDebut(1); // dessin 2 l . ajouterAuDebut(2); // dessin 3 l . ajout e rAuDebut (3); // dessi n 4 l . getPremier() . setValeur(4); // dessin 5 l . getPremier() . setSuivant(new ElementListe (5 , null)); // dessin 6 ( l . getPremier() . getSuivant()) . setSuivant(new El eme n tListe (6)); // dessin 7 } }
Exercice 2 : affichage
{sidebar id=1}
Question 1
Reprendre la classe Liste du cours et lui ajouter une méthode ecrireListe qui affiche la liste.
Question 2
Réécrire la méthode ecrireListe en utilisant la récursivité (sans boucle).
Question 3
Si ce n’est pas déjà fait, faire afficher une virgule entre chaque valeur de la liste. Attention : il ne doit pas y avoir de virgule avant la première valeur ni après la dernière.
Exercice 3 : insertion entre chaque élément
Ajouter une méthode qui permette d 'insérer entre chaque élément de la liste une nouvelle valeur. Par exemple, avec la liste [5,12,7], la méthode insererEntre(1) donnerait : [5,1,12,1,7].