Skip to content
Snippets Groups Projects
Commit bf41a84c authored by DALI AYOUB's avatar DALI AYOUB :speech_balloon:
Browse files

ajout td5

parent fc0943c4
Branches
No related merge requests found
TD Structures de données et algorithmes
Université de Strasbourg
bfreeling@unistra.fr
spec CPile étend Pile
opérations :
v : -> CPile //créer un couple de piles vide |générateur de base
(_, _) : Pile Pile -> CPile //empiler un couple de piles |peut aussi être générateur de base
e : CPile Nat S -> CPile //empiler sur une des deux piles |générateur de base
d : CPile Nat -> CPile // dépiler une des deux piles
ev : Cpile Nat -> Bool //test de vacuité
h : CPile Nat -> Nat //hauteur d'une des deux piles
n : CPile -> Nat //somme des deux hauteurs
préconditions : cp : CPile ; p1, p2 : Pile ; i : Nat ; x : S ; MAX = 50
pre e(CPile, Nat, S) = n(cp) < MAX & i E {1, 2}
pre (p1, p2) = hauteur(p1) + hauteur(p2) ≤ MAX
depiler pas possible si vide pre d(CPile, Nat) = !ev(CPile) |pas corrigé encore
Nat obligé > 0 |
typedef struct {
Nat tab[MAX];
Nat h1;
Nat h2;
}
CPile v(){
CPile t;
t.h1 = 0;
t.h2 = 0;
return t;
}
CPile e(CPile cp, Nat i, Nat x){
if(i==1){
cp.tab[cp.h1] = x;
cp.h1++;
} else {
cp.tab[cp.h2] = x;
cp.h2--;
}
return cp;
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment