La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

LOGO Soltana Ghanem : 1 ère année IAG 2009 - 2010 Institut Supérieur de Gestion de Tunis.

Présentations similaires


Présentation au sujet: "LOGO Soltana Ghanem : 1 ère année IAG 2009 - 2010 Institut Supérieur de Gestion de Tunis."— Transcription de la présentation:

1 LOGO Soltana Ghanem : 1 ère année IAG Institut Supérieur de Gestion de Tunis

2 Objectifs Être capable de choisir la structure adéquate à chaque problème connaître les structures de données linéaires Pouvoir implémenter les structures de données linéaires connaître les avantages et inconvénients de chaque structure connaître lutilité des structures de données Létudiant devra : 2

3 Références Michel Divay : Algorithmes et structures de données génériques Abdelali Guerid, Pierre Breguet, Henri Röthlisberger : Algorithmes et structures de données avec C++ et Java Cours Mme Nahla Ben Amor : Algorithmes et structures de données, 3

4 Plan 4 Définitions 1 Structures de données linéaires 2 Exercice 3 3 Tableau contiguë Liste chainée File Pile

5 Définitions 5 Cest un programme écrit dans un langage naturel Algorithme Cest une structure logique destinée à contenir des données, afin de leur donner une organisation permettant de simplifier leur traitement Structure de données

6 Définitions 6 Mise en situation : Vous voulez créer une application qui calcule votre moyenne (6 matières) Vous décidez de créer 12 variables qui serviront à contenir les notes exemple : mat1_exam, mat2_exam.. On vous demande de réaliser une application qui calcule la moyenne de tout les étudiants de ta classe(40) Vous allez définir et gérer manuellement 40 * 12 variables!

7 Tableau contiguë 7 Un tableau est un ensemble de cellules contigües visant à Contenir des données homogènes Un tableau est caractérisé par : Un nom Une taille physique Le type des données quil va contenir

8 Tableau contiguë T = Indice21345 Exemple : Pour récupérer la valeur dune case : Nom_du_tableau [ indice ] T[4] contient la valeur 18 Pour modifier une case : Nom_du_tableau [ indice ] = Valeur T[2] =

9 Tableau contiguë 9 Manipulation des tableaux contigües : Suppression Taille () : entier= une fonction qui retourne la Taille logique du tableau A la création du tableau initialiser la variable taille 0 Si une opération dajout est effectuée avec succès taille taille +1 Si une opération de suppression est effectuée avec succès taille taille -1 Récupérer ( indice : entier ) : Objet = fonction qui retourne lélément à la position indice Pré condition : indice > 0 et indice <= taille () Traitement : retourner ( tableau [ indice ] )

10 Tableau contiguë 10 Ajouter ( élément : objet, indice : entier ) : booléenne = fonction qui ajoute lélément dans le tableau à la position indice Pré condition : taille() < taille physique indice > 0 et indice <= taille ()+1 élément à ajouter doit être de même nature que les éléments contenus par le tableau Ajouter ( 200, 3 )

11 Tableau contiguë 11 Supprimer ( indice : entier ) : booléenne = fonction qui supprime lélément se trouvant à la position indice Pré condition : indice > 0 et indice <= taille () Supprimer ( 3 ) Lélément dindice 5 sera toujours présent mais ldécrémentation de la taille le rendra inaccessible.

12 Tableau contiguë 12 Inconvénients Avantages Simple à implémenter et à manipuler Simple à implémenter et à manipuler Accès directe aux données Accès directe aux données On doit définir la taille maximale au préalable On doit définir la taille maximale au préalable Lespace mémoire doit être contiguë Lespace mémoire doit être contiguë Utilisation non optimisé de la mémoire Utilisation non optimisé de la mémoire Ajout et suppression en fin de tableau en O(1) Ajout et suppression en fin de tableau en O(1)

13 Liste chainée 13 Une Liste est un ensemble de nœuds reliés entre eux Une liste peut être caractériser par un nœud tête car ce dernier sera le point de départ pour retrouver les autres nœuds Un nœud est une entité renfermant de linformation et ayant un pointeur sur le nœud qui la suit LISTE Nœud Implémentation

14 Liste chainée Nœud Pointeur Tête de liste suivant Exemple : la tête de liste représente le point daccès à la liste Chaque nœud : Renferme une information Indique lemplacement du prochain nœud Le dernier nœud ne pointe vers rien (null)

15 Liste chainée 15 Ajout : cas 1 : à la première position

16 Liste chainée 16 Ajout : cas 2 à la nième position

17 Liste chainée 17 Suppression: cas 1 : de la tête de liste Il est préférable doptimiser la mémoire !! Il est préférable doptimiser la mémoire !!

18 Liste chainée 18 Suppression: cas 2 : suppression dun élément autre que la tête de liste À supprimer

19 Liste chainée 19 Inconvénients Avantages Utilisation optimale de la Mémoire Utilisation optimale de la Mémoire Toutes les opérations Sur la tête de liste sont en O(1) Toutes les opérations Sur la tête de liste sont en O(1) Laccès aux données Est plus couteux (temps) Laccès aux données Est plus couteux (temps) Ajout à la fin de liste en O(n) Ajout à la fin de liste en O(n) Lespace mémoire ne doit pas être contiguë Lespace mémoire ne doit pas être contiguë La taille de la liste peut ne Pas être définie au préalable La taille de la liste peut ne Pas être définie au préalable Gestion des pointeurs Gestion des pointeurs

20 File 20 Une file (Queue) est un type particulier de liste, où les éléments sont insérés en queue et supprimer en tête Le nom vient des files dattente à un guichet, où le premier Arrivé est le premier servi : FIFO (First In First Out ) Les files sont dun usage très répandu dans la programmation système : gestion des processus, Gestion des imprimantes…

21 File 21 Exemple : Un nouveau venu Point de sorite Station de traitement Seul le premier élément peut quitter la file Les nouveaux éléments sont ajoutés à la fin de la file

22 File 22 Implémentation Puisque les Files sont des cas particuliers de listes pourquoi ne pas utiliser ces dernières pour les implémenter ? Doit-on utiliser les tableaux contigües ou les listes chainées? Liste doublement chainée !! Enfiler ( élément ) revient à faire ajouter ( élément, taille ()+1 ) Défiler ( ) revient à faire supprimer (1)

23 Pile 23 Une pile (stack) représente une séquences déléments accessibles par une seule extrémité appelée sommet La stratégie de gestion dune pile est : dernier arrivé, premier servi : LIFO ( Last In First Out ) Les opérations de mise à jour (insertion et suppression), daprès la définition, se font à partir du sommet

24 Pile Exemple : Base Sommet Je vois mieux maintenant !! Le sommet de la pile est le seul élément manipulable Pour manipuler un élément se trouvant au milieu de la pile il faudra dépiler tout ces prédécesseurs Si on ajoute un nouvel élément il serra empiler au dessus du sommet

25 Pile 25 Doit-on utiliser les tableaux contigües ou les listes chainées? Tableau contiguë !! Empiler ( élément ) revient à faire ajouter ( élément, taille () +1 ) Dépiler ( ) revient à faire supprimer (taille () ) Sommet ( ) revient à faire récupérer ( taille () ) Les piles sont utilisées pour gérer les appels récursifs !!!! liste chainée !!

26 Exercice : Quiz 26 Quel est la structure de données linéaire la plus adéquate à chaque problème? 1 La gestion dune équipe de football 2 La gestion des demandes de location dune voiture Le problème des tours de Hanoï La gestion des clients dune banque Tableau contiguë File Pile Liste chainée


Télécharger ppt "LOGO Soltana Ghanem : 1 ère année IAG 2009 - 2010 Institut Supérieur de Gestion de Tunis."

Présentations similaires


Annonces Google