• Aucun résultat trouvé

EMP Algorithmique &Structures de données

N/A
N/A
Protected

Academic year: 2022

Partager "EMP Algorithmique &Structures de données"

Copied!
3
0
0

Texte intégral

(1)

EMP

Algorithmique &Structures de données

Corrigé // Examen 1 // 2013 2014

SOIT

L UNE LISTE ;

Liberer_liste , Afficher_liste DES ACTIONS ; Cons UNE FONCTION ( LISTE ) ;

Inserer UNE FONCTION ( LISTE ) ; Tri UNE FONCTION ( LISTE ) ;

DEBUT //

Programme principal L := NIL ;

L := Cons ( L , 10 , Nil ) ; ECRIRE ( 'Afficher la liste' ) ; APPEL Afficher_liste ( L ) ;

ECRIRE ( 'Afficher la liste triée' ) ; L := Tri ( L , Nil ) ;

APPEL Afficher_liste ( L ) ; L := Inserer ( L , Nil , 90 ) ; ECRIRE ( 'Afficher la liste' ) ; APPEL Afficher_liste ( L ) ;

APPEL Liberer_liste ( L ) ; ECRIRE ( 'Afficher la liste' ) ; APPEL Afficher_liste ( L ) ;

FIN

FONCTION

Cons ( L , N , P ) : LISTE ;

SOIT

V UN ENTIER ; L , P , Q DES LISTES ; N UN ENTIER ;

DEBUT

SI N > 0 LIRE ( V ) ; ALLOUER ( Q ) ; AFF_VAL ( Q , V ) ; AFF_ADR ( Q , NIL ) ; SI L = NIL

L := Q ; Cons := L ;

SINON

AFF_ADR ( P , Q ) FSI ;

Q := Cons ( L , N - 1 , Q ) // Affectation non significative FSI

(2)

FIN

ACTION

Afficher_liste ( L )

SOIT

L UNE LISTE ;

DEBUT

SI L <> NIL

ECRIRE ( VALEUR ( L ) ) ;

APPEL Afficher_liste ( SUIVANT ( L ) ) FSI

FIN

FONCTION

Inserer ( L , Prec , V ) : LISTE ;

SOIT

L , Q , Prec DES LISTES ; V UN ENTIER ;

DEBUT

SI L <> NIL

SI V < VALEUR ( L ) ALLOUER ( Q ) ; AFF_VAL ( Q , V ) ; AFF_ADR ( Q , L ) ; SI Prec <> NIL

AFF_ADR ( Prec , Q ) SINON

L := Q ;

FSI ;

Inserer := Q SINON

SI SUIVANT ( L ) <> NIL

Q := Inserer ( SUIVANT ( L ) , L , V ) // Affectation non significative SINON

ALLOUER ( Q ) ; AFF_VAL ( Q , V ) ; AFF_ADR ( L , Q ) ; AFF_ADR ( Q , NIL ) ; FSI ;

Inserer := L FSI ;

FSI ;

FIN

FONCTION

Tri ( L , N ) : LISTE ;

SOIT

(3)

L UNE LISTE ; N UN ENTIER ;

DEBUT

SI N = 1 Tri := L SINON

Tri := Inserer ( Tri ( SUIVANT ( L ) , N - 1 ) , L , VALEUR ( L ) ) ;

FSI

FIN

ACTION

Liberer_liste ( L )

SOIT

L UNE LISTE ; Sauv UNE LISTE ;

DEBUT

SI L <> NIL

Sauv := SUIVANT ( L ) ; LIBERER ( L ) ;

L := NIL ;

APPEL Liberer_liste ( Sauv ) FSI ;

FIN

Données :

Lecture du scalaire V : 45

Lecture du scalaire V : 12

Lecture du scalaire V : 85

Lecture du scalaire V : 234

Lecture du scalaire V : 934

Lecture du scalaire V : 555Lecture du scalaire V : 21

Lecture du scalaire V : 38

Lecture du scalaire V : 93

Lecture du scalaire V : 127

Résultats :

Afficher la liste 45

12 85 234

934 555 21 38 93 127

Afficher la liste triée 12

21 38 45 85 93 127 234 555 934

Afficher la liste 12

21 38 45 85 90 93 127 234 555 934

(4)

Afficher la liste

Références

Documents relatifs

L’insertion des éléments du tableau dans un nouvel arbre selon l’ordre indiqué donne forcément un arbre équilibré.. Le 5 ième élément est donc la racine

Comme c’est une structure de données dynamique (composé d’un ensemble de noeuds formant un graphe dans lequel tout noeud a au plus un prédécesseur et au plus deux successeurs )

Donner le module qui parcourt un arbre de recherche binaire A en inordre (T1 n T2) en se servant d’une pile et qui range tous les éléments dans un tableau V.. Ecrire le module

Utiliser un parcours récursif pour ranger les adresses des feuilles d’un arbre de recherche binaire de gauche à droite dans une liste linéaire chaînée.. Utiliser l’opération

Lorsqu'une valeur est affectée à une variable chaîne de caractères, on procède comme pour un type numérique mais cette valeur doit être mis entre deux quotes simples.

Nous avons déjà parlé du QuickSort, dont la clé est l’idée qu’on peut trouver en temps linéaire la position qu’aura un élément quelconque, appelé pivot, dans le ta- bleau

On appelle arbre binaire (au maximum deux enfants par noeud) de recherche (ABR) un arbre ayant la propriété que chaque noeud ait une valeur au moins aussi grande que tout noeud

On appelle arbre binaire (au maximum deux enfants par noeud) de recherche (ABR) un arbre ayant la propriété que chaque noeud ait une valeur au moins aussi grande que tout noeud