Professional Documents
Culture Documents
06/03/2014
M.Hadjouni
53
Ce qui a t vu?
variables de type simple (entier, rels, caractre, etc.)
variables de type tableau(array), enregistrement (record)
54
M.Hadjouni
Variable Dynamique
Cest quoi?
Cest une variable pouvant tre alloue
pendant lexcution, au moment o il y en a
besoin! sous le contrle du programme au
moyen dinstructions spciales.
On
parle
alors
dallocation
dynamique
(contrle),
M.Hadjouni
Hajdouni M.
pointeurs
55
AU13-14 / 1LR3-1LR5
06/03/2014
Les pointeurs
Un pointeur est une variable qui contient l'adresse d'une
autre variable.
L'adresse contenue dans un pointeur est celle d'une
variable qu'on appelle variable pointe.
56
M.Hadjouni
Les pointeurs
Lille
La notion de pointeur
permet la construction de
structures de donnes :
30 km
220 km
Lens
200 km
dynamique (dont la
forme et la taille
peuvent voluer en
cours dexcution)
chanes (les objets sont
chanes entre eux)
210 km
Paris
Caen
800 km
700 km
650 km
Toulouse
Nice
200 km
Marseille
57
M.Hadjouni
200 km
Les pointeurs
Variable x
M.Hadjouni
Hajdouni M.
58
AU13-14 / 1LR3-1LR5
06/03/2014
59
M.Hadjouni
1. Dclaration :
Types
nom_pointeur = ^typeObjet
Variables
P = nom_pointeur
Types
Syntaxe Examens
M.Hadjouni
1. Dclaration :
2. Initialisation et/ou allocation :
a) initialisation de la variable pointeur et allocation de la variable
dynamique (pointe) :
rservation dune zone mmoire correspondant une variable de type
typeObjet et enregistre dans p ladresse de cette zone.
Allouer (P)
Syntaxe Examens
M.Hadjouni
Hajdouni M.
61
AU13-14 / 1LR3-1LR5
06/03/2014
1. Dclaration :
2. Initialisation et/ou allocation :
b) initialisation de la variable pointeur par l adresse dune autre
variable:
P^
Q^
M.Hadjouni
Types
pointeur = ^entier
Variables
P = pointeur
n, x: entiers
Dbut
p
?
20
20
adresse de n
20
P^
20
20
30
30
20
adresse de x
30
20
Fin
M.Hadjouni
63
M.Hadjouni
Hajdouni M.
64
AU13-14 / 1LR3-1LR5
06/03/2014
Graphes
Enregistrements
Tableaux
Piles
simple
chanage
LINEAIRES
Listes chanes
Files
double
chanage
65
M.Hadjouni
M.Hadjouni
66
M.Hadjouni
Hajdouni M.
67
AU13-14 / 1LR3-1LR5
06/03/2014
donne
@
donne
donne
donne
donne
68
M.Hadjouni
cellule
69
Deux parties:
Structure pour lentte
Rfrence vers le premier nud
Dautres attributs optionnels
Rfrence vers le dernier nud
Nombre de nuds
Hajdouni M.
70
AU13-14 / 1LR3-1LR5
06/03/2014
a
a^.info
a^.suivant
71
M.Hadjouni
Syntaxe
Pointeur sur
Types
nom_liste_Ch = ^Cellule
Cellule=Struct
Elt: entier
Suiv: Liste
FinStruct
Variables
L: nom_liste_Ch
M.Hadjouni
72
Mise en place :
Dfinition du maillon (crer un type)
Dclaration dun pointeur sur le dbut de la liste et dun pointeur de
parcours
Construction de la liste :
+ Cration dun maillon (allocation dynamique)
+ Insertion dun maillon dans la liste (au dbut, dans la liste, la fin)
Utilisation :
Parcours de la liste
Modification :
Insertion dun maillon dans la liste (idem ci-dessus)
Suppression dun maillon dans la liste (au dbut, dans la liste, la
fin)
M.Hadjouni
Hajdouni M.
73
AU13-14 / 1LR3-1LR5
M.Hadjouni
06/03/2014
74
M.Hadjouni
75
M.Hadjouni
Hajdouni M.
76
AU13-14 / 1LR3-1LR5
06/03/2014
Procdure itrative
77
M.Hadjouni
Procdure rcursive
78
M.Hadjouni
Exercice 1
Rsultats : 1 2 3 3 2 1
P(a^.suivant)
Ecrire(a^.info)
FinSi
Fin
M.Hadjouni
Hajdouni M.
79
AU13-14 / 1LR3-1LR5
06/03/2014
Exercice 2
Rsultats : 3 2 3 1 3 2 3
Ecrire(a^.info)
P(a^.suivant)
FinSi
Fin
M.Hadjouni
80
Etat initial
Etat final
M.Hadjouni
81
M.Hadjouni
Hajdouni M.
82
10
AU13-14 / 1LR3-1LR5
06/03/2014
M.Hadjouni
83
Version itrative
Fonction recherche(x : Entier ; L : Liste) :
Boolen
Variables
P : Liste
trouve : Boolen
M.Hadjouni
84
Version itrative
Dbut
trouve Faux
PL
TantQue (P # Nil) ET (trouve = Faux) Faire
Trouve (P^.Elem = x)
P P^.Suiv
FinTQ
recherche trouve
Fin
M.Hadjouni
Hajdouni M.
85
11
AU13-14 / 1LR3-1LR5
06/03/2014
Version rcursive
Fonction recherche(x : Entier ; L : Liste) : Boolen
Dbut
Si (L = Nil) Alors
recherche Faux
Sinon
Si (L^.Elem = x) Alors
recherche Vrai
Sinon
recherche recherche(x,L^.Suiv)
FinSi
FinSi
Fin
M.Hadjouni
86
M.Hadjouni
87
M.Hadjouni
Hajdouni M.
88
12
AU13-14 / 1LR3-1LR5
06/03/2014
Version itrative
Procdure supprimer(x : Entier ; Var L : Liste)
Variables
P, Q : Liste
Dbut
Si (L # Nil) Alors
PL
Si (L^.Elem = x) Alors
L L^.Suiv
Librer(P)
Sinon
Q L^.Suiv
M.Hadjouni
89
Version itrative
TantQue (Q # Nil) ET (Q^.Elem # x) Faire
PQ
Q Q^.Suiv
FinTQ
Si (Q # Nil) Alors
P^.suiv Q^.Suiv
Librer(Q)
FinSi
FinSi
FinSi
Fin
M.Hadjouni
90
Version rcursive
Procdure supprimer(x : Entier ; Var L : Liste)
Variables
P, Q : Liste
Dbut
Si (L # Nil) Alors
Si (L^.Elem = x) Alors
P L^.Suiv
Librer(L)
LP
Sinon
supprimer(x, L^.Suiv)
FinSi
FinSi
Fin
M.Hadjouni
Hajdouni M.
91
13
AU13-14 / 1LR3-1LR5
06/03/2014
P^.Suiv Q
QP
Ls Ls^.Suiv
Allouer(Q)
Q^.Elem Ls^.Elem
FinTQ
Ls_Inv Q
Q^.Suiv Nil
Ls Ls^.Suiv
Si (Ls = Nil) Alors
Ls_Inv Q
FinSi
FinSi
Fin
Sinon
92
M.Hadjouni
93
M.Hadjouni
M.Hadjouni
Hajdouni M.
16
suiv
prec
suiv
prec
suiv
prec
suiv
prec
tte
94
14
AU13-14 / 1LR3-1LR5
06/03/2014
Les piles
M.Hadjouni
Les piles
sommet
empiler
dpiler
sommet
Sommet
lments
lments
Pile (tableaux)
Pile (liste)
M.Hadjouni
96
Hajdouni M.
97
15
AU13-14 / 1LR3-1LR5
06/03/2014
6
Structure dune pile
M.Hadjouni
98
Dclaration
En supposant que les lments de la pile sont des entiers, celleci se dclare de la faon suivante :
M.Hadjouni
99
4 procdures et fonctions:
Procdure Initialiser(Var P : Pile) : cre une pile vide P
Fonction Pile_Vide (P : Pile) : Boolen : Renvoie la
valeur vrai si la pile est vide.
Procdure Empiler(x : Entier ; Var P : Pile) : ajoute
llment x au sommet de la pile
Procdure Dpiler (Var x : Entier ; Var P : Pile) :
dpile le sommet de la pile et le met dans la variable x
M.Hadjouni
Hajdouni M.
100
16
AU13-14 / 1LR3-1LR5
06/03/2014
Procdure Initialiser
Procdure Initialiser(Var P : Pile)
Dbut
P Nil
Fin
M.Hadjouni
101
Fonction Pile_Vide
Fonction Pile_Vide(P : Pile) : Boolen
Dbut
Pile_Vide (P = Nil)
Fin
M.Hadjouni
102
Procdure Empiler
Procdure Empiler(x : Entier ; Var P : Pile)
Variables
Q : Liste
Dbut
Allouer(Q)
Q^.Elem x
Q^.Suiv P
PQ
Fin
M.Hadjouni
Hajdouni M.
103
17
AU13-14 / 1LR3-1LR5
06/03/2014
Procdure Dpiler
104
M.Hadjouni
Les files
M.Hadjouni
Les files
dfiler
enfiler
tte
queue
lments
File (tableaux)
M.Hadjouni
Hajdouni M.
tte
tte
queue
queue
lments
File (liste)
106
18
AU13-14 / 1LR3-1LR5
06/03/2014
M.Hadjouni
Enfile
Empile
M.Hadjouni
Hajdouni M.
108
19