SUJET + CORRIGE
16 déc. 2011 Exercice 1 (Files à l'aide de Piles (8 points)). Nous avons vu en cours une implémentation d'un pile par un tableau borné. CreerPileVide (N){.
Algorithmique et Structures de données 1 Piles
Feuille 4 : Piles et Files. Dans les exercices suivants on consid`ere les types abstraits : type_Pile = Pile de objet;. type_File = File de objet; définis en
Pile renversée Exercice 2: suppression dun élément Exercice 3
(Indication: il est légèrement plus simple d'utiliser des piles à capacité illimitée on n'a pas à s'occuper de leur capacité). • Le corrigé utilise les piles à
TD – Piles et files - Corrigé
Dans l'exercice précédent on a vu que
Langage C : énoncé et corrigé des exercices IUP GéniE
Langage C : énoncé et corrigé des exercices. 1.5. P ILE E T FILE. Ce s exercice 4 - Affi c h age par éc h ange de pointeurs d 'une pile implémentée en liste c ...
Corrigé de la série de TD N 03 de Structures de Données
Supprimer toutes les villes ayant plus de 10.000 habitants. Exercice n. ◦. 02: Piles Correction de l'exercice n. ◦. 5. On dispose d'une pile de nombres ...
TP 9 : LISTES CHAINÉES FILES DATTENTE
http://hebergement.u-psud.fr/mkowalski/doc/L3_IST_306_TP9.pdf
PILES ET FILES
Inversion d'une File en utilisant une Pile. Le but de cet exercice est d'écrire en Python une procédure qui inverse une file d'éléments qui lui est passée en.
Exercice 1 : piles et files
Exercices dirigés séance n°9 - corrigé. Exercice 1 : piles et files. Un système muti-tâches peut exécuter n tâches en quasi parallélisme. Chaque tâche est
SUJET + CORRIGE
16 déc. 2011 Exercice 1 (Files à l'aide de Piles (8 points)). Nous avons vu en cours une implémentation d'un pile par un tableau borné.
Algorithmique et Structures de données 1 Piles
type_File = File de objet; définis en cours. 1 Piles. Exercice 4.1. Evaluer `a l'aide des primitives du type abstrait Pile de objet la fonction suivante et.
TD – Piles et files - Corrigé
TD – Piles et files. Corrigé. Piles. Exercice N°1 – Copie d'une pile. Ecrire une fonction stack_copy(s) recevant une pile (s) comme argument et renvoyant.
Untitled
Exercice 6: Résolution d'un labyrinthe. Corrigé. Annexe. Correction du programme de parenthésage. Enoncé. Correction. PC - Lycée Thiers. TD 5: Les piles.
Corrigé de la série de TD N 03 de Structures de Données
Soit P une Pile représentée par une liste chaînée des villes de Boumerdès
Langage C : énoncé et corrigé des exercices IUP GéniE
1.5 PILEET FILE . Les exercices 1 à 1 6 20 à 2 5
Exercice 1 : piles et files
séance n°9 - corrigé. Exercice 1 : piles et files. Un système muti-tâches peut exécuter n o empiler une tâche (ajouter une tâche au sommet de la pile).
TD1.6 Simulation mutuelle : file pile
https://algo.gricad-pages.univ-grenoble-alpes.fr/L3I-S5-algo/TD1-6-corrige.pdf
Corrigé des exercices
Exercice 2. La première pile (la pile a) reçoit les éléments qu'on ajoute à la file. Lorsqu'on veut supprimer un élément de la file celui-ci est extrait de
2020 12 08 - DE EFREI 2A SDD P2024 Corrigé et consignes sujets
et fonctions pour manipuler des listes piles
Chapitre 1informatique commune
Corrigé des exercices
Exercice 1Lorsqu"on définit une pile à l"aide d"un tableau statique, on maintient un pointeur vers le première
case disponible du tableau, qui représente le sommet de la pile :123456 q classPile: définition d "unepile à l "aided "untableau """ def__init__(self, n): self.lst = [None]*n self.size = n self.q = 0 defempty(self): returnself.q == 0 deffull(self): returnself.q == self.size defpush(self, x): ifself.full(): raiseValueError("pilepleine ") self.lst[self.q] = x self.q += 1 defpop(self): ifself.empty(): raiseValueError("pilevide ") self.q= 1 returnself.lst[self.q]Exercice 2
La première pile (la pilea) reçoit les éléments qu"on ajoute à la file. Lorsqu"on veut supprimer un
élément de la file, celui-ci est extrait de la pilebà moins que celle-ci ne soit vide, auquel cas les éléments de la
pileasont tout d"abord transférés dans la pileb.classFile:Définition
d "unefile à l "aidede deux piles """ def__init__(self): self.a = Pile() self.b = Pile() defempty(self): returnself.a.empty()andself.b.empty() defadd(self, x): self.a.push(x) deftake(self): ifself.empty(): raiseValueError("filevide ")Jean-Pierre Becirspahic1.2informatique communeifself.b.empty():
while not self.a.empty(): self.b.push(self.a.pop())returnself.b.pop()Puisque la méthodeaddrevient à appliquer la méthodepushà la pilea, sont coût est unO(1). En revanche, le
coût de la méthodetakedépend de l"état de la pileb: si celle-ci n"est pas vide le coût est unO(1), si elle est
vide le coût est unO(n)(coût du transfert de la pileavers la pileb). Cependant on peut observer que le coût
amortide la méthodetakeest unO(1), car chaque élément de la file ne subit que trois opérations, toutes de
coût constant : ajout dans la pilea, transfert vers la pileb, suppression de la pileb.Exercice 3
On empile les éléments dans celle des deux files qui est non vide (ou n"importe laquelle si les
deux sont vides); appelons-laa. Lorsqu"on veut dépiler un élément, on transfère les éléments de la fileavers la
fileb, à l"exception du dernier élément, qui est renvoyé.classPile: définition d "unepile à l "aidede deux files """ def__init__(self): self.a = File() self.b = File() defempty(self): returnself.a.empty()andself.b.empty() defpush(self, x): ifself.b.empty(): self.a.add(x) else: self.b.add(x) defpop(self): ifself.empty(): raiseValueError("listevide ") ifself.b.empty(): x = self.a.take() while not self.a.empty(): self.b.add(x) x = self.a.take() else: x = self.b.take() while not self.b.empty(): self.a.add(x) x = self.b.take() returnxLe coût de la méthodepushest à l"évidence unO(1): on se contente d"insérer l"élément dans une des deux files.
En revanche, le coût de la méthodepopest systématiquement un(n), correspondant au transfert d"une file
vers l"autre. Exercice 4Commençons par définir le notion de cellule :classCell: définition d "unecellule avec deux pointeurs """ def__init__(self, x): self.val = x self.next = None self.pred = NoneLes opérations d"ajout et de suppression dans une file doivent tenir compte du cas particulier de la file vide
(pour l"ajout) et de la file à un seul élément (pour la suppression).Corrigé des exercices1.3classFile:
définition d "unefile par liste doublement chaînée """ def__init__(self): self.queue = None self.tete = None defempty(self): returnself.teteisNone defadd(self, x): c = Cell(x) ifself.empty(): self.tete = c else: c.next = self.queue self.queue.pred = c self.queue = c deftake(self): ifself.empty(): raiseValueError("filevide ") c = self.tete ifc.predisNone: self.tete = None self.queue = None else: self.tete = c.predreturnc.valPour ajouter un élément, on crée une nouvelle cellule puis on modifie les pointeurs nécessaires pour préserver
la structure de liste doublement chaînée.Pour supprimer un élément, on récupère la cellule en tête de liste puis là encore on modifie les pointeurs
nécessaires pour préserver la structure de liste doublement chaînée. Exercice 5Nous allons avoir besoin de la classeCelldéjà définie en cours :classCell: définition d "unecellule avec pointeur """ def__init__(self, x): self.val = x self.next= NoneUne file est représentée par une liste circulaire dans laquelle chaque élément de la file pointe vers l"élément qui
le suit dans la file; quant à celle-ci, elle pointe vers son dernier élément. Par exemple, la filef= (1;2;3;4;5;6;7;8)
sera représentée en mémoire par le schema suivant :12 3 4 5 678fPour insérer un élément dans la file, il faut distinguer le cas où celle-ci est vide (il faut alors créer une cellule
qui pointe vers elle-même) ou non vide (il faut insérer une nouvelle cellule vers laquelle pointerafet modifier
certains pointeurs).Jean-Pierre Becirspahic
1.4informatique communePour supprimer un élément de la file, il faut distinguer le cas où la file ne contient qu"un élément (elle deviendra
vide) et le cas où la file en contient plus d"un, auquel cas la cellule qui suit celle pointée parfsera supprimée et
un pointeur modifié.classFile: définition d "unefile par liste circulaire """ def__init__(self): self.lst = None defempty(self): returnself.lstisNone defadd(self, x): c = Cell(x) ifself.empty(): c.next= c else: c.next= self.lst.next self.lst.next= c self.lst = c deftake(self): ifself.empty(): raiseValueError("filevide ") ifself.lst.nextis self.lst: c = self.lst self.lst = None else: c = self.lst.next self.lst.next= c.next returnc.valExercice 6La fonction qui suit ne détecte pas d"éventuelles erreurs de syntaxe :defevalue(lst):
p = Pile() fortinlst: iftinop_bin: y = p.pop() x = p.pop() p.push(op_bin[t](x, y)) eliftinop_uni: x = p.pop() p.push(op_uni[t](x)) else: p.push(t) returnp.pop()Nous allons maintenant détecter deux types d"erreurs de syntaxe : le cas où on cherche à dépiler une pile vide
(s"il manque d"opérande pour un opérateur unaire ou binaire) et le cas où à la fin de l"évaluation la pile contient
plus d"un élément. Ne seront pas détectées les erreurs liées à un opérateur de nom inconnu ou les erreurs
mathématiques (division par 0 par exemple).Corrigé des exercices1.5defevalue2(lst):
p = Pile() fortinlst: iftinop_bin: ifp.empty(): raiseValueError("expressionincorrecte ") y = p.pop() ifp.empty(): raiseValueError("expressionincorrecte ") x = p.pop() p.push(op_bin[t](x, y)) eliftinop_uni: ifp.empty(): raiseValueError("expressionincorrecte ") x = p.pop() p.push(op_uni[t](x)) else: p.push(t) s = p.pop()quotesdbs_dbs20.pdfusesText_26[PDF] exercice corrigé sur les semi conducteur pdf
[PDF] exercice corrigé sur les semi groupes
[PDF] exercice corrigé sur les série de fonction
[PDF] exercice corrigé sur les systeme de numeration
[PDF] exercice corrigé sur les tests dhypothèse
[PDF] exercice corrigé sur les vecteurs
[PDF] exercice corrigé sur les vecteurs niveau seconde
[PDF] exercice corrigé sur les vecteurs pdf
[PDF] exercice corrigé sur machine à courant continu
[PDF] exercice corrigé sur machine asynchrone
[PDF] exercice corrigé sur nombre réels
[PDF] exercice corrigé systeme de cramer
[PDF] exercice corrigé systeme de numeration
[PDF] exercice corrigé système différentiel pdf