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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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;
}