romain Rang: Administrateur
Nombre de messages : 346 Date d'inscription : 01/08/2004
| Sujet: pile Mar 14 Fév à 11:12 | |
| pile.h - Code:
-
#ifndef PILE_H #define PILE_H
typedef struct { int T[100]; /* pile contenant des floats, max 100 */ int sommet; /* index du sommet, -1 si pile vide */ }pile;
void init_pile(pile *p); int est_vide(pile *p); int est_pleine(pile *p); void empiler(pile *p, int element); int depiler(pile *p);
void afficher(pile *p); /* pour les tests */ #endif pile.c - Code:
-
#include <stdio.h> #include <stdlib.h>
#include "pile.h"
void init_pile(pile *p) { p->sommet = -1; }
int est_vide(pile *p) { return p->sommet == -1; }
int est_pleine(pile *p) { return p->sommet == 244; /* notre pile contient au max 244 elements */ }
void empiler(pile *p, int e) { if (est_pleine(p)) { printf("erreur: empiler: la pile est pleine\n"); exit(1); // a voir } p->sommet = p->sommet + 1; p->T[ p->sommet ] = e; }
int depiler(pile *p) { int resultat; if (est_vide(p)) { printf("erreur: depiler: la pile est vide\n"); exit(1); // a voir } resultat = p->T[p->sommet]; p->sommet = p->sommet-1; return resultat; }
/* Affiche l'etat de la pile */ void afficher(pile *p) { int i; printf("etat de la pile:\n"); for (i=0; i <= p->sommet; i++) printf("\t[%d]\n", p->T[i] ); }
/* int */ /* main(int argc, char* argv[]){ */ /* pile MaPile; */
/* /\* on doit toujours initialiser la pile avant tout: *\/ */ /* init_pile( &MaPile ); */ /* empiler(&MaPile, 22); */ /* empiler(&MaPile, 314); */ /* empiler(&MaPile, 1000); */ /* afficher(&MaPile ); */ /* printf("on depile %d\n", depiler(&MaPile) ); */ /* afficher(&MaPile); */ /* printf("on depile %d\n", depiler(&MaPile) ); */ /* printf("on depile %d\n", depiler(&MaPile) ); */ /* printf("on depile %d\n", depiler(&MaPile) ); */ /* return 1; */ /* } */
| |
|
romain Rang: Administrateur
Nombre de messages : 346 Date d'inscription : 01/08/2004
| Sujet: Re: pile Mar 14 Fév à 11:15 | |
| Nous pourrions aussi utiliser la librairie assert.h afin de verifier les assertions est_vide(p) (resp. est_pleine(p)) quand on depile (resp. empile) | |
|