Vous êtes sur la page 1sur 43

Chapitre 3 : Structures de données élémentaires

Dr GNIMASSOUN Jean Edgard

edgard.gnimassoun@usp.edu.ci

23 Octobre 2023
PLAN

1. Type tableau

2. Type enregistrement ou structure

3. Types énumérés

4. Type spécial pointeur

5. Quelques algorithmes de manipulation d’éléments d’un tableau


Type tableau / Définition
Type tableau

Type enregistrement Un tableau est une structure de donnée (Tab) qui permet de stocker un
ou structure
certain nombre d’éléments (Tab[i]) repérés par un index i. Les tableaux
Types énumérés
vérifient généralement les propriétés suivantes :
Type spécial pointeur

Quelques tous les éléments ont le même type de base ;


algorithmes de
manipulation le nombre d’éléments stockés est fixé.
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 1/41


Type tableau / tableaux à une seule dimension
Type tableau

Type enregistrement
ou structure

Types énumérés
Dans ce type de tableaux, chaque élément est accessible (pour lecture ou
Type spécial pointeur
modification) par un seul indice.
Quelques
algorithmes de Déclaration
manipulation
d’éléments d’un
tableau
La syntaxe de déclaration d’un tableau à une seule dimension est la
suivante :
Tableau nom_du_tableau[taille] : type

Exemple
Tableau Notes [100] : réel

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 2/41


Type tableau / tableaux à une seule dimension
Type tableau

Type enregistrement
ou structure

Types énumérés Remarque :


Type spécial pointeur L’indice d’un élément dans un tableau, peut être exprimé comme un
Quelques nombre, mais aussi il peut être exprimé comme une variable ou une
algorithmes de
manipulation expression calculée [10].
d’éléments d’un
tableau La valeur de l’indice doit être toujours :
Strictement Supérieur 0
de type entier
Inférieur ou égal au nombre des éléments du tableau
Une fois déclaré, un tableau peut être manipulé comme un ensemble de
variables simples.
Les trois manipulations de base sont l’affectation, la lecture et l’écriture

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 3/41


Type tableau / tableaux à une seule dimension
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 4/41


Type tableau / tableaux à une seule dimension
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 5/41


Type tableau / tableaux à une seule dimension
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 6/41


Type tableau / tableaux à une seule dimension
Type tableau

Type enregistrement
Application 1
ou structure

Types énumérés
Ecrivons un algorithme qui permet de lire des valeurs saisies par
Type spécial pointeur l’utilisateur dans un tableau de taille 20, et les afficher par la suite.
Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 7/41


Type tableau / tableaux à une seule dimension
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 8/41


Type tableau / tableaux à deux dimensions
Type tableau

Type enregistrement
ou structure Les tableaux à deux dimensions se présentent généralement sous forme
Types énumérés d’un ensemble de lignes et de colonnes (Matrice). Par conséquent,
Type spécial pointeur chaque élément est repéré par deux indices.
Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 9/41


Type tableau / tableaux à deux dimensions
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur


Déclaration
Quelques La syntaxe de déclaration d’un tableau à deux dimensions est la suivante :
algorithmes de
manipulation Tableau nom_du_tableau[taille1][taille2] : type
d’éléments d’un
tableau

Exemple
Tableau Notes [10][20] : réel

Le tableau Notes est composé de 10 lignes et 20 colonnes. Ce tableau


pourra contenir donc 10*20 soit 200 valeurs réelles.

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 10/41


Type tableau / tableaux à deux dimensions
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur Remarque : L’utilité d’un tableau à deux dimensions réside dans la
Quelques possibilité de déclarer un seul tableau au lieu de déclarer plusieurs
algorithmes de
manipulation tableaux identiques. En effet, le tableau de l’exemple précédent est
d’éléments d’un
tableau équivalant à 10 tableaux simples de 20 éléments chacun. En d’autres
termes, la déclaration :
Tableau Notes [10][20] : réel
remplace celle-ci :
Tableau Notes1 [20], Notes2 [20],. . . , Notes10 [20] : réel

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 11/41


Type tableau / tableaux à deux dimensions
Type tableau

Type enregistrement
Application 2
ou structure

Types énumérés
Ecrivons un algorithme qui permet de lire des valeurs saisies par
Type spécial pointeur l’utilisateur dans un tableau à deux dimensions de 5 lignes et 20 colonnes,
Quelques et les afficher par la suite.
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 12/41


Type enregistrement ou structure
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
Définition
manipulation
d’éléments d’un Un enregistrement (ou structure) permet de regrouper un ensemble de
tableau
données de différents types sous le même nom (un seul objet). Il est défini
par un ensemble d’éléments appelés champs. Ces derniers sont des
données élémentaires ou composées qui peuvent être de types différents.

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 13/41


Type enregistrement ou structure / Déclaration et
manipulation
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 14/41


Type enregistrement ou structure / Déclaration et
manipulation
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 15/41


Type enregistrement ou structure / Déclaration et
manipulation
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 16/41


Type enregistrement ou structure / Tableau de structures
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 17/41


Type enregistrement ou structure / Tableau de structures
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 18/41


Type enregistrement ou structure / Structure membre
d’une autre structure
Type tableau
Une structure peut figurer parmi les champs d’une autre structure. Dans
Type enregistrement
ou structure ce cas, elle doit être déclarée avant la structure qui la contient.
Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 19/41


Type enregistrement ou structure / Structure membre
d’une autre structure
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 20/41


Types énumérés
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur


Définition
Quelques
algorithmes de
Les énumérations permettent de définir un type par la liste des valeurs
manipulation
d’éléments d’un
qu’il peut prendre. Un type énuméré est un type permettant de
tableau représenter des objets pouvant prendre leur valeur dans une liste finie et
ordonnée de noms.

Déclaration
Type nom_type= (val1, val2, ..., valn)

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 21/41


Types énumérés
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 22/41


Type spécial pointeur / Notion de pointeur
Type tableau

Type enregistrement
ou structure Définition
Types énumérés
Un pointeur est une variable qui contient l’adresse d’une autre variable.
Type spécial pointeur

Quelques
algorithmes de Le pointeur pointe sur une autre variable dont il contient l’adresse
manipulation
d’éléments d’un mémoire, cette dernière étant dite variable pointée. Si l’on affiche le
tableau
contenu d’un pointeur, on obtient une adresse qui est celle de la variable
pointée, tandis que si l’on affiche le contenu de la variable pointée, on
obtient la valeur associée à cette dernière.
Un pointeur est une variable. De ce fait, elle doit être déclarée, dispose
elle-même de sa propre adresse en mémoire, et se voit définir un type. Le
type d’un pointeur ne décrit pas ce qu’il contient mais le type de la
variable qu’il pointe. Un pointeur sur une variable de type réel devrait donc
être déclaré avec un type réel.

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 23/41


Type spécial pointeur / Notion de pointeur
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 24/41


Type spécial pointeur / Opérations sur les pointeurs
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 25/41


Type spécial pointeur / Opérations sur les pointeurs
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 26/41


Type spécial pointeur / Opérations sur les pointeurs
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 27/41


Type spécial pointeur / Opérations sur les pointeurs
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 28/41


Type spécial pointeur / Allocation dynamique
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 29/41


Type spécial pointeur / Allocation dynamique
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 30/41


Type spécial pointeur / Allocation dynamique
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 31/41


Type spécial pointeur / Allocation dynamique
Type tableau

Type enregistrement
ou structure

Types énumérés
Quand on libère un pointeur, on libère la zone mémoire sur laquelle il
Type spécial pointeur

Quelques
pointait, cette zone redevient disponible pour toute autre utilisation. Après
algorithmes de
manipulation
chaque libération, il est préférable de réinitialiser le pointeur par la valeur
d’éléments d’un NIL, et de penser à tester le pointeur avant de l’utiliser.
tableau
Dans le cas où l’adresse de la zone mémoire libérée est conservée dans
un autre pointeur, il faut faire attention au fait que ce pointeur pointe sur
une zone éventuellement réaffectée à autre chose. Y accéder risque de
fournir une valeur arbitraire, y écrire risque d’occasionner des problèmes,
voire des plantages .

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 32/41


Quelques algorithmes de manipulation d’éléments d’un
tableau / La recherche dans un tableau
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 33/41


Quelques algorithmes de manipulation d’éléments d’un
tableau / La recherche dans un tableau
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 34/41


Quelques algorithmes de manipulation d’éléments d’un
tableau / Tri par sélection
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 35/41


Quelques algorithmes de manipulation d’éléments d’un
tableau / Tri par sélection
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 36/41


Quelques algorithmes de manipulation d’éléments d’un
tableau / Tri par insertion
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 37/41


Quelques algorithmes de manipulation d’éléments d’un
tableau / Tri par insertion
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 38/41


Quelques algorithmes de manipulation d’éléments d’un
tableau / Tri par insertion
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 39/41


Quelques algorithmes de manipulation d’éléments d’un
tableau / Tri par insertion
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 40/41


Quelques algorithmes de manipulation d’éléments d’un
tableau
Type tableau

Type enregistrement
ou structure

Types énumérés

Type spécial pointeur

Quelques
algorithmes de
manipulation
d’éléments d’un
tableau

Chapitre 3 : Structures de données élémentaires 23 Octobre 2023 41/41

Vous aimerez peut-être aussi