Algo 3 Coursn5
Algo 3 Coursn5
Algo 3 Coursn5
Structure de donnée :
• Pile
Algorithmes
Opérations :
empiler(x) insère un élément à l’entrée de la pile;
dépiler() retourne et supprime l’élément en entrée de pile;
• Définir le TDA
• Ajouter élément (empiler)
• Retirer élément (dépiler)
• Tester si vide
Pile createStack(){
Pile tas = (Pile)malloc(sizeof(pile));
tastete = NULL;
tastaille = 0;
return tas;
}
int val;
Node tmp;
tmp = (*p)teteprec;
val = (*p)tetevaleur;
while(p tete) { if (! p)
return 0 ;
n++;
return 1 +
ptete = pteteprec; length (p prec);
}
}
return n;
}
pile *tmp;
(*p) taille = 0;
while ((*p)tete) {
tmp = (*p)teteprec;
free((*p) tete);
void view(Pile p) {
while(ptete) {
printf("%d\n",ptetevaleur);
ptete = pteteprec;
}
}
return ptaille ;
Structure de donnée :
• File
Algorithmes
• FIFO
(First In First Out)
Opérations :
enfiler(x) ajoute un élément en entrée de file;
défiler() supprime l’élément situé en sortie de file.
détecter si elle est vide (éventuellement pleine)
File createFile(){
File queue= (File)malloc(sizeof(file));
queuedebut= NULL;
queuefin= NULL;
queuetaille = 0;
return queue;
}
}
Dr. Mouhamadou THIAM Maître de
04/05/2015 142
conférences en informatique
Fonction défiler
int defiler (File *f){
if (!(*f)fin) return -1; //(*f)taille = 0
int val = (*f)finval;
if ((*f)taille == 1){
(*f)fin = NULL; free((*f)debut) ;
}
(*f)taille --;
else { PElement q, p = (*f)debut;
while (p && psuiv) {q =p; p = psuiv;}
(*f)fin = q; qsuiv = NULL; free(p);
return val;
}
int n=0;
int length (PElement f) {
while(fdebut) {
if (!f)
return 0 ;
n++;
return 1 + length (fsuiv);
f debut = fdebutsuiv;
}
}
return n;
}
file *tmp;
(*f) taille = 0;
while ((*f)debut) {
tmp = (*f)debutsuiv;
free((*f)debut);
(*f)debut = tmp;
}
}
void view(File f) {
while(fdebut) {
printf("%d\n",fdebutval);
fdebut = fdebutsuiv;
}
}
return ftaille ;