Fonctions listes chaînées
Suite au tuto dispo ici
http://chgi.developpez.com/pile/
j'ai decidé de continuer et de faire de nouvelles fonctions
Dont une qui supprime un element qui possede une valeur determiée d'une pile alors que la fonction de suppression disponible sur le tuto ne permettait que de supprimer celui sur le debut.
Je voudrais avoir votre avis.
Code:
1 2 3 4 5 6 7
|
pile* renvoie_nieme_element(pile *Mapile,int n){
for(int i=2;i<=n;i++){
Mapile=Mapile->prec;
}
return Mapile;
} |
Ca permet de renvoie l'element qui se trouve a la nieme place.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
pile* supr_un_element(pile** Mapile,int a){
//supprime lelement qui possede la valeur a.
pile* temp=*Mapile;
pile* element_avant_le_supprimé;
pile* element_apres_le_supprimé;
pile* element_a_supprimer;
int n=0; //n est le numéro de la place de l'élément qui précède celui qu'on doit supprimer.
if(temp!=0){
while(temp->val!=a){
temp=(temp)->prec;
n=n+1;
}
element_avant_le_supprimé=renvoie_nieme_element(*Mapile,n);
element_a_supprimer=renvoie_nieme_element(*Mapile,n+1);
element_avant_le_supprimé->prec=element_a_supprimer->prec;
}
return temp2;
} |
Il y certainement mieux a faire, mais c'est ce que j'ai fait
J'attends tous vos commentaires.
et voici une fonction qui renvoie le min
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
int renvoie_min(pile* mapile){;
int a;
a=(*mapile).val;
for (int i=1;i<=lentgh(mapile);i++){
mapile=mapile->prec;
//cout<<(*mapile).val<<endl;
if (a>=(*mapile).val){
a=mapile->val;
}
}
return a;
} |