-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathListeTriee.java
114 lines (99 loc) · 2.64 KB
/
ListeTriee.java
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
/**
* Classe ListeTriee
* @author Étienne André
* @since 2021-11-12
*
*/
public class ListeTriee{
// Attribut de liste sous-jacente
private Liste liste;
public ListeTriee(Liste listevide){
// Affectation de la liste vide à l'attribut privé
liste = listevide;
}
/**
* retourne la premiere place de la liste
* @return tete de liste
*/
public int tete(){
return this.liste.tete();
}
/**
* permet de connaitre la place suivante dans la liste
* @param p place en cours
* @return place derriere p dans la liste
*/
public int suc(int p){
return this.liste.suc(p);
}
/**
* retourne la valeur associee a la place p
* @param p place de la liste
* @return la valeur associee p
*/
public String val(int p){
return this.liste.val(p);
}
/**
* indique si la place p est a la fin de la liste ou non
* @param p place de la liste
* @return vrai si p est a la fin de la liste, faux sinon
*/
public boolean finliste(int p){
return this.liste.finliste(p);
}
/**
* ajoute un element au bon endroit dans la liste triee
* @param chaine element a inserer
*/
public void adjlisT(String chaine){
int p = this.liste.tete();
int pPre =0;
boolean insere = false;
if (!this.liste.finliste(p)){
while(!insere && !this.liste.finliste(p)){
if(this.liste.val(p).compareTo(chaine)>0){
if(p==this.liste.tete()){
this.liste.adjtlis(chaine);
}
else{
this.liste.adjlis(pPre, chaine);
}
insere=true;
}
else{
pPre=p;
p=this.liste.suc(p);
}
}
if(!insere){
this.liste.adjlis(pPre, chaine);
}
}
else {
this.liste.adjtlis(chaine);
}
}
/**
* permet de supprimer un element d'une liste. Supprime le premier element dont la valeur est egale a "chaine" ; ne fait rien si "chaine" n'appartient pas a la liste.
* @param chaine l'element a supprimer
*/
public void suplisT(String chaine){
int p = this.liste.tete();
boolean supprime = false;
int pPre = 0;
if (!this.liste.finliste(p)){
while(!supprime && !this.liste.finliste(p)){
if(this.liste.val(p).compareTo(chaine)==0){
this.liste.suplis(p);
supprime=true;
}
pPre = p;
p = this.liste.suc(p);
}
}
}
public String toString(){
return liste.toString();
}
}