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

Présentation Chaînage dynamique Retour sur les tableaux

Présentations similaires


Présentation au sujet: "Présentation Chaînage dynamique Retour sur les tableaux"— Transcription de la présentation:

1 Présentation Chaînage dynamique Retour sur les tableaux
Allocation dynamique Liens entre les données Création de la classe Noeud Exemples

2 Chaînage dynamique Retour sur les tableaux [ ] Allocation dynamique
Les tableaux en java sont statiques On ne peut pas augmenter ou diminuer le nombre de cases d’un tableau en cours d’exécution. Allocation dynamique Lorsqu’on crée un objet (new), l’espace mémoire est alloué en cours d’exécution. Nous pouvons libérer l’espace mémoire d’un objet en cours d’exécution. Nous pouvons conserver des données à l’aide d’un objet. Truc : Mettre les données dans des objets plutôt que dans un tableau.

3 Chaînage dynamique 1 5 7 9 11 15 2 17 8 Liens entre les données
Dans un tableau statique les données sont consécutives en mémoire. Les objets ne sont pas consécutifs en mémoire. Tableau Objets 1 5 7 9 11 15 2 17 8 5 7 9 11 17 8 2 1 15

4 Chaînage dynamique 1 Lien 5 Lien 7 Lien
Il faut prévoir un mécanisme pour faire le liens entre les objets pour simuler un tableau. Chaînage dynamique La stratégie est de créer une structure qui contient l’objet et un lien vers la donnée suivante. On appelle un nœud, la structure qui contient l’objet et le lien vers le suivant. 1 Lien 5 Lien 7 Lien

5 La classe Nœud : //Une classe interne et ainsi on peut accéder directement aux //attributs à partir de la classe parent. Public class Nœud{ //attributs, l’objet + le lien private Object element; private Nœud suivant; //constructeur public Nœud(Object element, Nœud suivant){ this.element = element; this.suivant = suivant; }

6 Chaînage dynamique 1 noeud 5 null Exemple : Nœud tableau;
//insertion d’une donnée dans le tableau tableau = new Nœud(new Integer(1),null); //insertion d’une donnée à la suite Noeud nœud = new Nœud(new Integer(5),null); tableau.suivant = noeud; tableau noeud Enveloppeur (wrapper) 1 noeud 5 null

7 while(i != n && position != null){ position = position.suivant; i++; }
Récupérer un élément dans le tableau (équivalent à tableau [n]) //Dans cet exemple, on ne lève pas d’exception si n invalide public Object getElement(int n){ //on crée un nœud qu’on place au début du tableau Nœud position = tableau; int i = 1; /On se déplace tant qu’on a pas trouvé ce qu’on cherche ou //qu’on a pas atteint la fin du tableau (null) while(i != n && position != null){ position = position.suivant; i++; } if(position != null) return position.element; return null;


Télécharger ppt "Présentation Chaînage dynamique Retour sur les tableaux"

Présentations similaires


Annonces Google