Présentation Chaînage dynamique Retour sur les tableaux

Slides:



Advertisements
Présentations similaires
FLSI602 Génie Informatique et Réseaux
Advertisements

Structures de données et algorithmes – C5 Maria-Iuliana Dascalu, PhD
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
IFT-2000: Structures de Données Listes chaînées Dominic Genest, 2009.
Présentation Structures de Données et TDA
Les listes chaînées par Frédérick Henri.
Structures de données IFT-2000 Abder Alikacem Retour sur les listes ordonnées Département dinformatique et de génie logiciel Édition Septembre 2009.
Plan cours La notion de pointeur et d’adresse mémoire.
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
CINI – Li115 1 Semaine 9 Algorithmes de tri ● Introduction ● Tri à bulle ● - principe ● - algorithme ● - efficacité ● Tri par sélection ● - principe, algorithme,
Stéphane Frénot, Frederique Laforest, Frédéric Le-Mouël IJA 1 TD 6 IJA Structures de données JAVA.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
Quantité de mouvement Un solide de masse m se déplace à la vitesse linéaire v. On appelle quantité de mouvement le produit m.v q = m.v.
1 Programmation en C++ Cycle de vie ● La vie d'un objet ● Destructeur ● Gestion de mémoire dynamique.
Powerpoint. Environnement Powerpoint Interface Powerpoint Aide Powerpoint Les onglets Ouvrir / Créer une présentation Enregistrement diaporama.
Tableaux en C Mardi 2/05.
I- ANALYSE DU BESOIN / Plan
Modèle objet : les classes
Asynchronous Javascript And Xml
Classe interne Classe interne
Pas de variable globale
Les notions de classe et d'objet
Eléments d’Informatique Cours11 – Allocation dynamique, listes chaînées Catherine Recanati.
Allocation dynamique de mémoire
Pointeurs et langage C.
Tutoriel ‘Gestion des boîtes’
Détection des erreurs.
I21 Algorithmique et programmation II
Principes de programmation (suite)
11ième Classe (Mardi, 18 novembre) CSI2572
Langages de programmation TP7
Semaine 11 Les pointeurs (suite)
Gestion dynamique de la mémoire : new / delete
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault
Tableaux à plusieurs dimensions en langage C
Tableaux à plusieurs dimensions en langage C
Comptage unique dans les tableaux croisés dynamiques
Diagramme de classe UML et C++
Module 5 : Gestion des disques.
DIAPORAMA D’AIDE A L’UTILISATION DU FICHIER Mise à jour 06/11/2017 OUTIL « FICHES DE SUIVI DES ELEVES» Outil conçu et proposé par l’académie de Besançon.
Containeurs & Itérateurs
REVUE DE LITTERATURE. Introduction Première partie majeure dans la rédaction du mémoire, la réalisation d’une revue de littérature consiste à effectuer.
Programmation Orientée Objet C# El Akel Bouchra ISMONTIC Tanger 2013/2014.
CRITERES DE QUALITE 1) PRECISION 2) RAPIDITE 3) AMORTISSEMENT
© Robert Godin. Tous droits réservés.
Les classes et les objets
Programmation Android Les listes
Atelier de formation à l’élaboration de CD-ROM (Ouagadougou, 19 et 20 août 2015) Par-Gs 1.
Les structures de base Listes chainées. Listes Les listes(similaire aux tableaux) sont des structures informatiques qui permettent de garder en mémoire.
DESIGN PATTERN BUILDER KADRI LOUBNA CHARMATI SEWSEN.
Chapitre 3: Les listes simplement chaînées A.ABDALI MIPC/MIP S
BUFFER CIRCULAIRE Meryem EL BAKRI. PLAN Introduction Buffer circulaire Fonctionnement.
Atos, Atos et le poisson, Atos Origin et le poisson, Atos Consulting ainsi que le poisson seul sont des marques déposées d'Atos Origin SA. © 2006 Atos.
Structure de données utiles
Principes de programmation (suite)
© Robert Godin. Tous droits réservés.
Les arbres généraux.
LISTES.
Les tris Tri Action de mettre une structure de données en ordre (croissant ou décroissant). Le plus simple est d’insérer en ordre. Les algorithmes de tri.
Listes Chaînées.
STREAMS (et fichiers).
Retour sur les interfaces
© Robert Godin. Tous droits réservés.
Definition de html sommaire. Présentation de html, css et javascript Module 1.
Structure de données Les listes.
Bases de données Singleton pour la connexion
TP N°1 : GUI en NetBeans Module R & C Université de Jijel
Evaluation PowerPoint 2003
La programmation dynamique
Transcription de la présentation:

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

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.

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

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

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; }

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

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;