• Aucun résultat trouvé

Structures de données

N/A
N/A
Protected

Academic year: 2022

Partager "Structures de données"

Copied!
18
0
0

Texte intégral

(1)

Structures de données

Jean-François Berdjugin IUT 1, département SRC

Grenoble

(2)

Définition

• une structure de données est une structure logique destinée à contenir des données, afin de leur donner une organisation permettant de simplifier leur traitement.

• Plusieurs formes

– Finies – Indexées

– Séquentielles – Récursives

(3)

Iceberg

Public

Private

Fonctionnalités (interface)

Implémentation

(4)

Plusieurs types de tableaux

• Tableau à une dimension

• Tableau à plusieurs dimensions

• Tableau indicés

• Tableau associatifs

val1 val2 val3 val4 tab0

0 1 2 3

val1 val2 val3 val4 tab1

clé1 clé2 clé3 clé4

tab2

(5)

Tableaux en java

• De longueur fixe

• Déclaration d’un tableau à une dimension : Type[] nom

• Instanciation : nom = new Type[taille]

• Accédé par un indice (tab[i])

‘S’ ‘A’ ‘L’ ‘U’ ‘T’

0 tab

1 2 3 4

char[] tab;

tab = new char[5];

tab[0]=‘S’;

tab[1]=‘A’;

(6)

Tableau

• Problème de la taille fixe => l’insertion et la suppression

S A L L U

0 1 2 3 4

tab

S A L ? U

0 1 2 3 4

tab

Insertion perte d’une valeur

Suppression que mettre dans la case

(7)

Liste chaînée

• Les éléments (cellules) sont rangés linéairement (séquentiellement)

• Accès par la tête

• Longueur variable (ensemble dynamique)

• Élément de base la cellule :

– Un contenu

– Une référence vers une autre cellule

S A L

Tête Queue

Cellule

(8)

Liste chaînée

• Création d’une liste vide

• Insertion en tête

• Insertion en queue

• Insertion dans la liste

?

X

X S

X S A

(9)

Liste chaînée

• Insertion dans la liste

?

• Ne pas perdre les références

X S A

X S A

I

X S A

I

X S A

I

(10)

Liste doublement chaînée

• Chaque cellule est définie par :

– Un contenue

– Une référence vers la cellule suivante – Une référence vers la cellule précédente

S L U

(11)

Liste doublement chaînée Insertion ?

S L U

(12)

Liste doublement chaînée Insertion ?

S L U

A

S L U

A

(13)

Liste doublement chaînée Insertion ?

S L U

A

S L U

A

(14)

Pile

• Last In / First Out (LIFO)

• Deux méthodes

– Push (empiler) – Pop (Dépiler)

• Rem : une pile peut- être implémentée en utilisant un tableau ou une liste.

push(val) pop()

(15)

Files

• First In/ First Out

• Deux méthodes

– Enfiler – Défiler

• Implémentation ?

5 4 3 2 1

enfiler(val) defiler()

(16)

Arbre

• Ensemble dynamique

• Accès rapide aux éléments

• Arbre composé de Nœuds

– Contenus – Fils

• Arbre binaires (2 fils) :

– Entier : 0 ou de fils

– Parfait toutes les feuilles sont à la même distance de la racine

• Implémentation ?

Racine

Noeud Noeud

Feuille Feuille Feuille Noeud

Feuille

Feuille

(17)

Graphes

• L’ensemble de arbres est inclus dans celui

des graphes Londres

Paris Berlin

Lyon Bermud

es

(18)

Implémentation File

• Liste chaînée

• Tableau (si file bornée)

• Tampon circulaire (si file bornée)

5

4 3

2 1

Références

Documents relatifs

Toutes les informations sur le tri sont stockées dans des bases de données, certaines tables sont sauvegardées dans les ordinateurs du système d’information non représentés dans

Rôle : placer, au moment voulu, une page du disque vers la mémoire et inversement.. • Politique de remplacement

Allouer et initialiser une liste de produits Les afficher tous mais dans l’ordre inverse Afficher seulement ceux dont le prix est

Pour les deux programmes les données peuvent être perforées sur cartes ou enre- gistrées sur support magnétique avec un FORMAT ; chaque observation doit comporter un

Listes chaînées: principales opérations Listes chaînées: principales opérations Longueur d'une liste: (récursive). Longueur d'une liste:

— Il s’agit de définir une fonction qui prend en argument un texte, et re- tourne un booléen : True s’il est correctement parenthésé, False sinon. — On crée une pile pour

Prioriser vos données selon leur qualité, leur origine, leur

→ Borne inférieure : on ne peut pas faire mieux (#P-difficile sans borne sur la largeur d’arbre) Caractérise les conditions sur la structure des données probabilistes qui permettent