Listes linéaires chaînées Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)

Slides:



Advertisements
Présentations similaires
Structures de données avancées : MLH (Multidimensional linear hashing)
Advertisements

Structures de données avancées : Principales structures de fichiers
Structures de données avancées : B arbres
Structures de données avancées : Principales structures de données
Structures de données avancées : MBT ( Multidimensional B-trees )
Structures de données avancées : MTH ( Multidimensional trie hashing )
Structures de données avancées : Introduction
Traitement sémantique et grammaire dattributs Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
Le langage Z Pr ZEGOUR DJAMEL EDDINE
Machines de Turing Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
Sémantique des déclarations pour le langage Z minimal
Algorithmique (suite)
Fonctions & procédures
1 Révisions. 2 Tableaux non contraints Déclaration du type : type Tvecteur = tableau ( intervalle dentiers) de entiers type Tvecteur is array (integer.
Chap. 1 Structures séquentielles : listes linéaires
Initiation à la programmation et algorithmique cours 3
Algorithmique -les fichiers-
Chapitre IV. Structures linéaires (piles, files, listes chaînées)
Les bases de l’Algorithmique
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Les éléments de base de l’algorithmique
Les structures de données arborescentes
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
Pr ZEGOUR Djamel Eddine
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Code des opérateurs Appartenance à une liste ( appartient_l ) –Prototype: Bool appartient_l(type_el x, liste L) –Pré-conditions: aucunes. –Post-conditions:
Semaine #1 INF130 par Frédérick Henri.

Séance d’introduction
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI) Plate-forme.NET.
CSI3525: Concepts des Langages de Programmation Notes # 6: Langages de Programmation Fonctionelle II: Introduction au ML.
1 Le fichier séquentiel Suite finie déléments dun même type Exemples : – fichier des livres dune bibliothèque – enregistrements sur un magnétophone – ensemble.
201 UMLV  Type « dictionnaire » sous-ensembles finis de E (ordonné) avec les opérations : Ens_vide :  Ens Ajouter : Ens x Elément  Ens Enlever.
Le langage C Structures de données
Structures de données avancées : Arbres AVL & Arbres Rouge et Noir
Structures de données avancées : Hachage dynamique
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
4 Introduction des objets. Les chaînes et tableaux
Structures complexes Pr ZEGOUR DJAMEL EDDINE
Expressions logiques Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
D.E ZEGOUR Ecole Supérieure d’Informatique
Procédures et fonctions Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Un survol du language C.
Sémantique des expressions arithmétiques pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Le langage Z minimal Pr ZEGOUR DJAMEL EDDINE
Structures de données avancées : Fichiers uni-dimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures de données avancées : Arbres ‘Left Leaning Red-Black’
L’analyse lexicale Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures de contrôle Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Sémantique des instructions pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures simples et tableaux Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures de données avancées : Fichiers multidimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) zegour.esi.dz
Interprétation/Génération de code pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Expressions sur les chaînes de caractères Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
ISBN Chapitre 10 L'implémentation des sous- programmes.
Fonctions standards Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Module algorithmique et programmation
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) C O M P I L Z.
COMPIL - Z Compilateur visible
Fichiers Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Objets et Actions Élémentaires.
Organisation de la mémoire pour le langage minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
Transcription de la présentation:

Listes linéaires chaînées Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)

Listes linéaires chaînées : Objectif On définit une machine abstraite sur les listes permettant l’initiation aux structures dynamiques de données Cette machine abstraite offre les opérations de base sur les listes : ALLOUER, LIBERER, VALEUR, SUIVANT, AFF_ADR, AFF_VAL Sémantique des listes linéaires chaînées : Il s’agit de les transformer en des formes internes qui permettent de faciliter leur interprétation ou génération de code.

Sémantique des listes linéaires : Quadruplés Allocation / Libération : ALLOUER(P); LIBERER(P) A, B non utilisés C : pointeur dans TABOB vers le résultat A, B non utilisés C : pointeur dans TABOB vers le maillon (‘Allouer’,A,B, C )

Sémantique des listes linéaires : Quadruplés Accès VALEUR(Exp); SUIVANT(Exp) A : pointeur dans TABOB vers le maillon B non utilisés C : pointeur dans TABOB vers le résultat A : pointeur dans TABOB vers le maillon B non utilisés C : pointeur dans TABOB vers le résultat (‘Valeur’,A,B, C ) (‘Suivant’,A,B, C )

Sémantique des listes linéaires : Quadruplés Mise à jour : AFF_ADR(Exp1, Exp2) ; AFF_VAL(Exp1, Exp2) A : pointeur dans TABOB vers le résultat de f1 B non utilisés C : pointeur dans TABOB vers le résultat de f2 A : pointeur dans TABOB vers le résultat de f1 B non utilisés C : pointeur dans TABOB vers le résultat de f2 (‘Aff_val’,A,B, C ) (‘Aff_adr’,A,B, C )

Listes linéaires chaînées : Déclarations Types dans {Entier, Booleen, Car, Chaine} Sep dans {:, Un, Une, Des} Cste constante numérique entière Chaîne chaîne de caractères Idf identificateur Opr dans {, >=, =, <> } Opa dans { +, -, Ou } Opm dans { *, /, Et } Sign dans {+, -} Tableau est synonyme de Vecteur Init_tableau est synonyme de Init_vecteur

Listes linéaires chaînées : Déclarations  [ ~Soit|Soient~ ] Debut Fin [;] { ~ | ~ [;] }*  Action Idf [ ( ) ] [;] [ ~Soit|Soient~ ] Debut Fin  Fonction Idf ( ) : [ ~Soit|Soient~ ] Debut Fin  ;{ [~Soit|Soient~] ;}*  [Sep ~ |~Action|Fonction( )~ ~]  Idf {, Idf}*

Listes linéaires chaînées : Déclarations  Types | | | Machine_car | Machine_nombre | Tableau ( ) [De~ | Types~ ] |  [Structure ](Types {, Types }*)  [Structure ]( ~ Types | Vecteur(Cste) De Types ~ {, ~ Types | Vecteur(Cste) De Types ~ }*)  Cste {, Cste}* [Pointeur vers [Sep] ] Liste [ De ~Types | ~ |

Listes linéaires chaînées : Instructions  { ; }*  Idf := | Lire ( Idf {, Idf }* ) | Ecrire ( {, }* ) | Tantque [ : ] Fintantque | Si [:] [Sinon ] Fsi | Pour Idf:=, [, ][:] Finpour | Appel Idf [(Exp {, }*)] |

Listes linéaires chaînées : Instructions  ~ |Init_vecteur|Init_struct|Creer_mnombre~ ( Idf, [[ ~ |[[ {, }*]] ~ {, ~ |[[ {, }*]]~}* ]] ) | Aff_element ( [[ {, }* ], ) | Aff_struct(Idf, Cste, ) | Creer_mcar(Idf, [[ Chaine ]]) | ~Lirecar|Lirenombre~ (Idf, Idf) ~ Aff_adr|Aff_val~ (, ) | ~Liberer| Allouer~ ( ) | Creer_liste

Listes linéaires chaînées : Expressions  [ Opr ]  [Sign] { Opa }*  {Opm }*  Idf [(Exp {, }*)] | Cste | ( ) | | | Non | Vrai | Faux | | Chaine  Element ( [[ {, }* ]] ) | Struct ( Idf, Cste) ~Nbrcar|NbrNombre~ (Idf) ~Valeur|Suivant~ ( ) | Nil

Sémantique des listes linéaires : Fonctions sémantiques  [Pointeur vers [Sep] ] Liste [ De ~Types | ~ Description Fx Fonctions sémantiques et Descriptions à trouver

Sémantique des listes linéaires : Fonctions sémantiques  ~Liberer| Allouer~ ( ) Description Fx Fonctions sémantiques et Descriptions à trouver

Sémantique des listes linéaires : Fonctions sémantiques  ~ Aff_adr|Aff_val~ (, ) Description Fx Fonctions sémantiques et Descriptions à trouver

Sémantique des listes linéaires : Fonctions sémantiques  ~ Creer_liste ( Idf, [[ ~ |[[ {, }*]] ~ {, ~ |[[ {, }*]]~}* ]] ) Description Fx Fonctions sémantiques et Descriptions à trouver

Sémantique des listes linéaires : Fonctions sémantiques  Nil Description Fx Fonctions sémantiques et Descriptions à trouver

Sémantique des listes linéaires : Fonctions sémantiques  ~Valeur|Suivant~ ( ) | Description Fx Fonctions sémantiques et Descriptions à trouver

Sémantique des listes linéaires : Exemple1 soit L1, L2, L3 des listes; debut Allouer(L1); Allouer(L2); Allouer(L3); Aff_val(L1,5); Aff_val(L2,55); Aff_val(L3,555); Aff_adr(L1,L2);Aff_adr(L2,L3); Aff_adr(L3,Nil) fin ‘L’ ‘C’ TABOB 3 LONGZDD 3 Quadruplés générés ‘Alloue’0 1 2 ‘Aff_v’ ‘Aff_a’ TABTYP LEW 0 ‘5’,’55’,’555’,’Nil’ TABCONS

Sémantique des listes linéaires : Exemple2 Soit L une liste ; P un pointeur vers une liste; debut creer_liste(L, [3,6,43,32] ); P := L; Tq P <> Nil ecrire( Valeur(P)); P := Suivant (P) Ftq fin ‘L’ ‘C’ ‘X’412 ‘Y’ TABOB 5 LONGZDD 3 Quadruplés générés ‘Creer’004 ‘Aff’10 ‘<>’167 ‘B’749 ‘Valeu’18 ‘Ecrir’11 ‘Suiva’19 ‘Aff’19 ‘Br’ TABTYP LEWB 0 ‘3’,’6’,’43’,’32’,’Nil’ TABCONS TABCOMP 2,3,4,

Listes linéaires chaînées : Interprétation Implémentation des listes linéaires chaînées (Description PASCAL) Typeliste = ^Elementliste; Elementliste = RECORD Element : POINTER; Suivant : Typeliste END;