moitié tp 3
This commit is contained in:
@@ -1,28 +1,37 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "chaine.h"
|
||||
|
||||
struct maillon_s {
|
||||
char valeur;
|
||||
struct maillon_s* suivant;
|
||||
};
|
||||
typedef struct maillon_s maillon ;
|
||||
|
||||
void push(char nouv, maillon* debut){
|
||||
void push(char nouv, maillon** debut){
|
||||
maillon* m = (maillon*) malloc (sizeof(maillon));
|
||||
m->valeur = nouv;
|
||||
if (debut == NULL)
|
||||
m->suivant = NULL;
|
||||
else
|
||||
m->suivant = debut;
|
||||
debut = m;
|
||||
m->suivant = *debut;
|
||||
*debut = m;
|
||||
}
|
||||
|
||||
void pop(maillon* debut){
|
||||
maillon* m = (maillon*) malloc (sizeof(maillon));
|
||||
m->valeur = nouv;
|
||||
if (debut == NULL)
|
||||
m->suivant = NULL;
|
||||
double pop(maillon** debut){
|
||||
maillon m = **debut;
|
||||
free(*debut);
|
||||
if (m.suivant == NULL)
|
||||
*debut = NULL;
|
||||
else
|
||||
m->suivant = debut;
|
||||
debut = m;
|
||||
*debut = m.suivant;
|
||||
return m.valeur;
|
||||
}
|
||||
|
||||
int empty(const maillon* debut){
|
||||
return debut == NULL;
|
||||
}
|
||||
|
||||
double top (const maillon* debut){
|
||||
return debut->valeur;
|
||||
}
|
||||
|
||||
void clear (maillon** debut){
|
||||
while (empty(*debut)){
|
||||
pop(debut);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user