Vous êtes sur la page 1sur 5

package struct;

public class Liste {


//Attributs
private int x;
private Liste suiv;
//Constructeur
public Liste(Liste l,int x){
this.x=x;
this.suiv=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(l.suiv,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 (k1.suiv!=null)k1=k1.suiv;
k1.suiv=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(r.suiv,x);
r.suiv=k;
}
return l;
}
//Supp en Tête.
public static Liste supp_Tete(Liste l){
if (l!=null)l=l.suiv;
return l;
}
//Supp en queue
public static Liste supp_Fin(Liste l){
if (l!=null) {
if (l.suiv==null)l=null;
else {
Liste k1=l,k2=l.suiv;
while (k2.suiv!=null){
k1=k2;
k2=k2.suiv;
}
k1.suiv=null;
}
}
return l;
}
//Supp quelconque
public static Liste supp_Qlq(Liste l,int x){
if (l!=null){
if (l.x==x)l=l.suiv;
else {
Liste k1=l,k2=l.suiv;
while(k2!=null)
if (k2.x==x)k1.suiv=k2.suiv;
else {
k1=k2;
k2=k2.suiv;
}
}
}
return l;
}
// la taille d'une liste
public static int liste_size(Liste l){
if (l==null) return 0;
else return 1+liste_size(l.suiv);
}
//Affichage
public static void affichage(Liste l){
Liste k=l;
System.out.println("");
while (k!=null){
System.out.print(k.x);
k=k.suiv;
if (k!=null) System.out.print(" -> ");
}
//System.out.println("\nLe nombre des éléments de la
liste :" + liste_size(l));
}

package struct;

import java.util.Scanner;

public class Testliste {


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

public static void main(String[] args) {


// TODO Auto-generated method stub

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

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

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

break;
case 8:
System.out.println("Suppression la queue :");
l=Liste.supp_Fin(l);
Liste.affichage(l);
System.out.println("\nLe nombre des éléments de la liste
:" + Liste.liste_size(l));

break;
case 9:
System.out.println("Suppression un élément QlQ :");
System.out.println("Supprimer l'élément:");
x =scr.nextInt();
l=Liste.supp_Qlq(l, x);
Liste.affichage(l);
System.out.println("\nLe nombre des éléments de la liste
:" + Liste.liste_size(l));

break;
case 10:
System.out.println("Affichage de la liste :");
Liste.affichage(l);
System.out.println("\nLe nombre des éléments de la liste
:" + Liste.liste_size(l));

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

Vous aimerez peut-être aussi