structures de donn es et r cursivit n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Structures de données et récursivité PowerPoint Presentation
Download Presentation
Structures de données et récursivité

Loading in 2 Seconds...

play fullscreen
1 / 16

Structures de données et récursivité - PowerPoint PPT Presentation


  • 67 Views
  • Uploaded on

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)

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Structures de données et récursivité' - orde


Download Now 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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
structures de donn es et r cursivit

Structures de données et récursivité

IPA – Catherine FaronZucke et Anne Marie Deryr

vous avez vu les arraylist
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

arraylist
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

piles et files
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

slide5

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

exemples d utilisation
Exemplesd’utilisation

Algorithmes d'évaluation d'expressions mathématiques

Algorithmes pour mémoriser des données en attente de traitement.

?

IPA – Catherine Faron Zucker

piles avec tableau
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

files avec arraylist
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

conception d un algorithme
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

pgcd a b r cursif
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

pgcd a b r cursif1
PGCD(a, b) récursif

Si b=0

Alorsretourner a //terminaison

Sinonretournerpgcd(a, a mod b)

finSi

IPA – Catherine Faron Zucker

pgcd a b it ratif
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

fac n
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

fac n1
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

manipulation d une structure recursive
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

a suivre structures de donn es
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