0% ont trouvé ce document utile (0 vote)
49 vues5 pages

Gestion d'une liste chaînée en Java

Ce document décrit une classe Liste qui implémente une liste chaînée simple en Java avec des méthodes pour tester si la liste est vide, rechercher un élément, ajouter et supprimer des éléments en tête, queue ou de manière quelconque.

Transféré par

khaled19lmd
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
49 vues5 pages

Gestion d'une liste chaînée en Java

Ce document décrit une classe Liste qui implémente une liste chaînée simple en Java avec des méthodes pour tester si la liste est vide, rechercher un élément, ajouter et supprimer des éléments en tête, queue ou de manière quelconque.

Transféré par

khaled19lmd
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

package struct;

public class Liste {


//Attributs
private int x;
private Liste suiv;
//Constructeur
public Liste(Liste l,int x){
this.x=x;
[Link]=l;
}
//les méthodes
//Liste vide
public static boolean liste_vide(Liste l){
return (l==null);
}
//Recherche
public static Liste recherche(Liste l,int x){
if (l==null)return null;
else if (l.x==x)return l;
else return recherche([Link],x);
}
//Ajout en Tête.
public static Liste ajout_Tete(Liste l,int x){
return new Liste(l,x);
}
//Ajout en queue
public static Liste ajout_Fin(Liste l,int x){
Liste k=new Liste(null,x);
if (l==null) l=k;
else {
Liste k1=l;
while ([Link]!=null)k1=[Link];
[Link]=k;
}
return l;

}
//Ajout quelconque
public static Liste ajout_Qlq(Liste l,int x,int y){
Liste r=recherche(l,y);
if (r!=null){
Liste k=new Liste([Link],x);
[Link]=k;
}
return l;
}
//Supp en Tête.
public static Liste supp_Tete(Liste l){
if (l!=null)l=[Link];
return l;
}
//Supp en queue
public static Liste supp_Fin(Liste l){
if (l!=null) {
if ([Link]==null)l=null;
else {
Liste k1=l,k2=[Link];
while ([Link]!=null){
k1=k2;
k2=[Link];
}
[Link]=null;
}
}
return l;
}
//Supp quelconque
public static Liste supp_Qlq(Liste l,int x){
if (l!=null){
if (l.x==x)l=[Link];
else {
Liste k1=l,k2=[Link];
while(k2!=null)
if (k2.x==x)[Link]=[Link];
else {
k1=k2;
k2=[Link];
}
}
}
return l;
}
// la taille d'une liste
public static int liste_size(Liste l){
if (l==null) return 0;
else return 1+liste_size([Link]);
}
//Affichage
public static void affichage(Liste l){
Liste k=l;
[Link]("");
while (k!=null){
[Link](k.x);
k=[Link];
if (k!=null) [Link](" -> ");
}
//[Link]("\nLe nombre des éléments de la
liste :" + liste_size(l));
}

package struct;

import [Link];

public class Testliste {


static void menu(){
[Link]("\n-----------------------------------");
[Link]("-----Gestion d'une liste simple----");
[Link]("-----------------------------------");
[Link]("1:Initialisation-------------------");
[Link]("2:Test:Liste vide ?----------------");
[Link]("3:Recherche------------------------");
[Link]("4:Ajout en tête--------------------");
[Link]("5:Ajout en queue-------------------");
[Link]("6:Ajout QlQ------------------------");
[Link]("7:Supp en tête---------------------");
[Link]("8:Supp en queue--------------------");
[Link]("9:Supp QlQ-------------------------");
[Link]("10:Affichage-----------------------");
[Link]("11:Quitter-------------------------");
[Link]("-----------------------------------");

public static void main(String[] args) {


// TODO Auto-generated method stub

Liste l=null;
int ch,x;
do{
menu();
[Link]("Donner votre choix:");
Scanner scr= new Scanner([Link]);
ch=[Link]();
switch (ch){
case 1:
[Link]("Initialisation de la liste :");
l=null;
break;
case 2:
[Link]("la liste est-elle vide ? :");
if (l==null)[Link]("la liste est vide.");
else [Link]("la liste n'est pas vide.");
break;
case 3:
[Link]("Recherche d'un élément :");
[Link]("Donner l'élément recherché :");
x=[Link]();;
Liste k=[Link](l, x);
if (k==null)[Link]("l'élément recherché :"+x+"
n'est pas trouvé.");
else [Link]("l'élément recherché :"+x+" est
trouvé.");
break;
case 4:
[Link]("Ajout en tête :");
[Link]("Donner un nombre :");
x=[Link]();
l=Liste.ajout_Tete(l, x);
[Link](l);
[Link]("\nLe nombre des éléments de la liste
:" + Liste.liste_size(l));
break;
case 5:
[Link]("Ajout en queue :");
[Link]("Donner un nombre :");
x=[Link]();
l=Liste.ajout_Fin(l, x);
[Link](l);
[Link]("\nLe nombre des éléments de la liste
:" + Liste.liste_size(l));

break;
case 6:
[Link]("Ajout après un élément:");
[Link]("Donner le nombre à inséré:");
x=[Link]();
[Link]("ce nombre est inséré après le
nombre:");
int y =[Link]();
l=Liste.ajout_Qlq(l, x, y);
[Link](l);
[Link]("\nLe nombre des éléments de la liste
:" + Liste.liste_size(l));

break;
case 7:
[Link]("Suppression la tête :");
l=Liste.supp_Tete(l);
[Link](l);
[Link]("\nLe nombre des éléments de la liste
:" + Liste.liste_size(l));

break;
case 8:
[Link]("Suppression la queue :");
l=Liste.supp_Fin(l);
[Link](l);
[Link]("\nLe nombre des éléments de la liste
:" + Liste.liste_size(l));

break;
case 9:
[Link]("Suppression un élément QlQ :");
[Link]("Supprimer l'élément:");
x =[Link]();
l=Liste.supp_Qlq(l, x);
[Link](l);
[Link]("\nLe nombre des éléments de la liste
:" + Liste.liste_size(l));

break;
case 10:
[Link]("Affichage de la liste :");
[Link](l);
[Link]("\nLe nombre des éléments de la liste
:" + Liste.liste_size(l));

}while (ch>=1 && ch<=10);

Vous aimerez peut-être aussi