Pile: exo realisation de la primitive Empiler

Résolu/Fermé
bornin90s Messages postés 44 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 6 juillet 2018 - 3 juil. 2018 à 20:15
bornin90s Messages postés 44 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 6 juillet 2018 - 3 juil. 2018 à 21:05
Bonjour je suis en train de relire mon cours mais je me demande si je n'ai pas mal écrit la solution de l'exo d'application .
Voici l'énoncé et la solution et en commentaire ce que je crois avoir oulié de noter. Qu'en pensez-vous? Merci pour votre aide
Enoncé:
1/ Soit une pile d’entier réaliser avec les entiers. Ecrire un module qui réalise la primitive Empiler()
2/ Soit une pile d’entier réaliser avec les entiers. Ecrire un module qui réalise la primitive Pilepleine()
Correction
Type pile = ↑structure
DEBUT
	Info :entier
	Suiv :pile
FIN
Var sommet :pile
Procedure Empiler(Donne val :entier
			  D/R sommet :pile) 
/**
* Ici devait-on pas déclarer p comme suit 
*var p = pile 
*? 
*/
DEBUT
	Si (pilePleine(sommet)=vrai) alors
		Ecrire « Impossible d’ajouter »
	Sinon 
		Allouer(p)
		P↑.info←val
		P↑.suiv ←NIL
		Si(pileVide(sommet)=vrai)alors
			Sommet ←p
		Sinon
			P.↑suiv ← sommet 
			Sommet ← p
		FINSI
	FINSI
FIN




Correction Exo 2

Type pile = ↑structure
DEBUT
	Info :entier
	Suiv :pile
FIN
Var sommet :pile
Procedure pilePleine(Donne sommet :pile) :booleen
/**
* Ici devait-on pas déclarer p comme suit 
*var p = pile 
*? 
*/
DEBUT
	Allouer(p)
	SI(p=NIL) alors
		Retourner(vrai)
	Sinon
		Liberer(p)/*Pourquoi doit-on liberer p? */
		Retourner(faux)
	FINSI
FIN

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
3 juil. 2018 à 20:51
Bonjour,

"Ici devait-on pas déclarer p comme suit var p = pile "
Je pense que si, pour les deux cas.

"Pourquoi doit-on liberer p?"
Le principe de pilePleine est d'essayer d'allouer une nouvelle donnée (pour montrer que c'est possible) mais s'il a réussi il faut ensuite la libérer pour ne pas prendre inutilement la place et avoir à la fin de la procédure la même pile qu'au début.
1
bornin90s Messages postés 44 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 6 juillet 2018
3 juil. 2018 à 21:05
Merci bcp .
0