1 / 16

Structures de données et récursivité

Structures de données et récursivité. Vous avez vu les ArrayList . suite ordonnée d'éléments de taille variable ArrayList <Integer> liste ; liste = new ArrayList <Integer>(); Ne peuvent contenir que des objets premier élément : liste.get (0)

orde
Download Presentation

Structures de données et récursivité

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Structures de données et récursivité IPA – Catherine FaronZucke et Anne Marie Deryr

  2. Vousavez vu les ArrayList... • suite ordonnéed'éléments de taillevariable ArrayList<Integer> liste; liste = new ArrayList<Integer>(); • Ne peuventcontenirque des objets • premier élément : liste.get(0) • dernierélément : liste.get(liste.size()-1) • iièmeélément : liste.get(i-1) IPA – Catherine Faron Zucker

  3. ArrayList • ajout d'un élt: liste.add(new Integer(3)); • modif d'un élt: liste.set(i,new Integer(4)); • suppression d'un élt: liste.remove(i); • mêmesalgosquesur les tableaux avec taille variable IPA – Catherine Faron Zucker

  4. Piles et Files • Ordonnancementsparticuliers des élémentsd'une collection - implémentation à partir d’un tableau oud'uneliste • Pile : LIFO Last In First Out • empiler/dépiler des éléments • Peutêtreimplémentée par un tableau ouuneliste • File : FIFO First In Fist Out • enfiler /défiler des éléments • implémentation par liste plus simple IPA – Catherine Faron Zucker

  5. Soit la Pile contenant les valeurs : 1, 2, 5 • Dessinezmoiune Pile  • Ajoutons l’élément 12 • Dépilons un élément • Soit la File contenant les valeurs : 1, 2, 5 • Dessinezmoiune File  • Ajoutonsl’élémént 12 • Sortons un élément de la file IPA – Catherine Faron Zucker

  6. Exemplesd’utilisation Algorithmes d'évaluation d'expressions mathématiques Algorithmes pour mémoriser des données en attente de traitement. ? IPA – Catherine Faron Zucker

  7. Piles avec tableau public class Pile{ private Object[] table; private int hauteur; public void empiler(Object o){table[hauteur]=o; hauteur++;} public Object depiler(){hauteur--; return table[hauteur];} public Object sommet(){} public boolean vide(){} public booleanpleine(){} } IPA – Catherine Faron Zucker

  8. Files avec ArrayList public class File{ private ArrayList<Object> liste; private intlongueur; public void enfiler(Object o){liste.add(o); longueur++;} public Object defiler(){longueur--; return liste.remove(0);} public Object tete(){} public Object queue(){} public boolean vide(){} } IPA – Catherine Faron Zucker

  9. Conception d'un algorithme • Stratégie de résolution d'un problème • Approche incrémentale • itérer jusqu'à obtention du résultat souhaité • Approche récursive • diviser pour régner: • diviser en sous-problèmes • régner sur les sous-problèmes • combiner les solutions des sous-problèmes IPA – Catherine Faron Zucker

  10. PGCD(a, b) récursif • diviser: pgcd(a,b) = pgcd(b, a mod b) semblable au problème initial de taille moindre • régner: pgcd(a,0) = a • combiner: pgcd(a,b)= pgcd(b,a mod b)=... IPA – Catherine Faron Zucker

  11. PGCD(a, b) récursif Si b=0 Alorsretourner a //terminaison Sinonretournerpgcd(a, a mod b) finSi IPA – Catherine Faron Zucker

  12. PGCD(a, b) itératif n <- a; m <- b; TantQue m != 0 Faire r <- n mod m n <- m m <- r FinTantQue retourner n IPA – Catherine Faron Zucker

  13. Fac(n) • Relation de récurence fac(n) = n * fac(n-1), n>0 fac(0) = 1 • Algorithme Si n = 0 Alorsretourner 1 Sinonretourner n * fac(n-1) FinSi IPA – Catherine Faron Zucker

  14. Fac(n) Complexité • opération élémentaire : * • nbre de fois où elle est effectuée • fonction de n: M(n) • relation de récurence: M(n) = 1 + M(n-1) pour n>0 et M(0) = 0 en développant, on a M(n) = M(n-i) + i pour tout i pour i=n, on obtient M(n) = M(O) + n = n cf. module Maths discrètes IPA – Catherine Faron Zucker

  15. Manipulation d’une structure recursive ! • Ajout d’un élément en position i • Suppresssion d’un élément en position i • Recherche d’un élément de valeur z • Calcul de la somme des éléments ? IPA – Catherine Faron Zucker

  16. A suivre...Structures de données • Maps et Sets • listeschaînées : cf. td • simplement, doublement • arbres • arbresbinaires • arbresbinaires de recherche • graphes IPA – Catherine Faron Zucker

More Related