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);