Exercice langage Java POO- dessins - affichage - insertion entre éléments
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}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | public class ElementListe { private int 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 ; } public int getValeur ( ) { re turn valeur ; } public void setValeur ( int valeur ) { this . valeur = valeur ; } public ElementListe getSuivant ( ) { return suivant ; } public void setSuivant ( ElementListe suivant ) { this . suivant = suivant ; } } public class ListeIter { ElementListe premier ; public boolean estVide ( ) { return premier == null ; } public ElementListe getPremier ( ) { r e turn p r emi e r ; } public void ajouterAuDe but ( int v ) { Elemen tListeanc ienPremier= premier ; premier = new El eme ntListe ( v , ancienPremier ) ; } public void 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 ; } public int getLongueur ( ) { int longueur = 0 ; ElementListe elt = getPremier ( ) ; while ( elt != null ) { longueu r++; elt = elt . getSuivant ( ) ; } return longueur ; } public boolean 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 ; } public void 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 ( ) ) ; } } } public void concatener ( ListeIterl ) { if ( this . estVide ( ) ) { this . premier = l . premier ; } else { ElementListe dernier = getDernierElement ( ) ; dernier . setSuivant ( l . getPremier ( ) ) ; } } class Exo21_1{ public static void 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].
Article publié le 21 Mars 2010 Mise à jour le Lundi, 22 Mars 2010 15:24 par GC Team