Partie 3. Gilles Lebrun (gilles.lebrun@unicaen.fr)



Documents pareils
Les structures de données. Rajae El Ouazzani

ARBRES BINAIRES DE RECHERCHE

INF601 : Algorithme et Structure de données

Les arbres binaires de recherche

Quelques Algorithmes simples

Arbres binaires de recherche

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Big Data et Graphes : Quelques pistes de recherche

chapitre 4 Nombres de Catalan

Algorithmique et Programmation

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Chapitre 5 : Flot maximal dans un graphe

Algorithmique, Structures de données et langage C

SUPPORT DE COURS. Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Big Data et Graphes : Quelques pistes de recherche

TP3 : Manipulation et implantation de systèmes de fichiers 1

Générer du code à partir d une description de haut niveau

L exclusion mutuelle distribuée

Université de Strasbourg UFR de Mathématique et d'informatique. L2 Informatique Semestres S3 et S4. Structures de Données et Algorithmes 1 et 2

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Cahier n o 6. Mon ordinateur. Fichiers et dossiers Sauvegarde et classement

Tutorial NL220. Objectifs : Fournir un guide utilisateur pour NL220. Présenter une méthodologie efficace pour la création de projet

DNS : Domaine Name System

CH.6 Propriétés des langages non contextuels

MIS 102 Initiation à l Informatique

Organiser les informations ( approche technique )

1 Recherche en table par balayage

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Arbres binaires de décision

Cours de Master Recherche

données en connaissance et en actions?

L ARBORESCENCE. Qu est-ce qu un dossier? L arborescence?

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var - E mail : bij@agasc.fr / Tel : CONSIGNE N 1 :

Manuel d utilisation. Anne RACINE. A. Racine Référence: Manuel MS Project.doc 03/03/2003 Page 1

Serveurs de noms Protocoles HTTP et FTP

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

Malgré son aspect spartiate, Freeplane offre de nombreuses fonctionnalités en particulier dans le domaine de la diffusion des cartes sur le Web.

Restaurer des données

Introduction à l informatique en BCPST

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Algorithmique et langages du Web

ANALYSE CATIA V5. 14/02/2011 Daniel Geffroy IUT GMP Le Mans

Systèmes d information et bases de données (niveau 1)

Un radar pour Internet

La société Klippan France dont l usine est à Gournay-en-Bray en Normandie, La société Autoliv S.A. dont l usine est à Seclin dans le Nord, Normandie.

Introduction à la théorie des graphes. Solutions des exercices

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Eléments de Théorie des Graphes et Programmation Linéaire

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Gérer son DNS. Matthieu Herrb. tetaneutral.net. Atelier Tetaneutral.net, 10 février

LE PROBLEME DU PLUS COURT CHEMIN

Programmation par contraintes. Laurent Beaudou

Fondements de l informatique Logique, modèles, et calculs

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Algorithmes de recherche

Dimensionnement d une roue autonome pour une implantation sur un fauteuil roulant

Parallélisme et Répartition

Utilisation de KoXo Computers V2.1

Plateforme de capture et d analyse de sites Web AspirWeb

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

Domain Name Service (DNS)

Génie Logiciel avec Ada. 4 février 2013

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Représentation d un entier en base b

M é ca n ism e Pr o lo g. Ex e m p le

MANUEL DE PROCÉDURE POUR LA MISE À JOUR DU SITE DE FIDAFRIQUE. Documentation utilisateur Octobre 2005

ANALYSTE PROGRAMMEUR EN INFORMATIQUE Option : Développement Internet

Éditorial. Tangente ÉDUCATION. Scratch, AlgoBox, Python. Trimestriel - n 15 - janvier 2011 Numéro spécial 16 activités TICE pour le lycée

Initiation. àl algorithmique et à la programmation. en C

La réforme du permis de construire et des autorisations d urbanisme

LES DIFFERENTS PAS EN STEP. Variantes

Introduction au maillage pour le calcul scientifique

Feuille TD n 1 Exercices d algorithmique éléments de correction

Document Object Model (DOM)

Chapitre 7. Récurrences

- Université Paris V - UFR de Psychologie ASDP4 Info Introduction à Windows

Introduction à MATLAB R

Quelques matériels numériques

Les Difficultés Inhérentes aux Réseaux Sans Fil. Des Solutions aux Scénarios de Problèmes

Planifier et contrôler un projet avec Microsoft Project

COMMUNICATION TECHNIQUE N TCV060 Ed. 01. OmniVista 4760 Nb de pages : 18 Date : URGENTE NON URGENTE TEMPORAIRE DEFINITIVE

Compression de Données - Algorithme de Huffman Document de Conception

Par : Abdel YEZZA, Ph.D. Date : avril 2011 / mise à jour oct (ajout de la section 3 et augmentation de la section 1)

Intégration de la dimension sémantique dans les réseaux sociaux

Bernard Lecomte. Débuter avec HTML

Algorithmique, graphes et programmation dynamique Notes de Cours Rapport de Travaux Pratiques. Laurent Canet

Trépier avec règle, ressort à boudin, chronomètre, 5 masses de 50 g.

Correction Code nécessaire à la compilation : let bs ="\\" let nl = "\n" ;; let appliquer = List.map ;; (* affichage d'un noeud *)

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Plus courts chemins, programmation dynamique

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Formats d images. 1 Introduction

Groupe Eyrolles, 2003, ISBN : X

Qu est-ce que l analyse des données qualitatives? TAMS Analyzer n est: Projets collaboratifs. TAMS Analyzer permet:

UML (Paquetage) Unified Modeling Language

Avertissement. La Gestion Electronique de Documents

Transcription:

Partie 3 Gilles Lebrun (gilles.lebrun@unicaen.fr)

Les arbres binaires Définition : C est une structure arborescente ou hiérarchique ou récursive Chaque élément (nœud) constituant la structure de l arbre a : au plus un prédécesseur et au plus deux successeur Trois types de nœud b Racine ou sommet de l arbre Feuilles ou nœuds à la base de l arbre Internes (les autres qui ne sont ni racine, ni feuille Quelques règles Les arbres sont connexes (UNE et UNE seule racine) Il existe UN et UN seul chemin pour aller de la racine à un nœud b b

Les arbres binaires Quelques définitions Sous-arbre direct d un arbre L arbre ayant pour racine le fils gauche ou le fils droit de la racine Profondeur d un arbre Distance maximum pour aller de la racine à une des feuilles de l arbre Profondeur d un nœud longueur du chemin de la racine au nœud Hauteur d un nœud : longueur du chemin du nœud à la feuille la plus profonde Taille d un arbre nombre de nœuds dans l arbre Taille d un nœud nombre de fils et petit-fils du nœud + le nœud

Les nœuds chaque nœud contient Uneinstanced uneclassedebase Un successeur gauche un successeur droit. Référence sur le sous-arbre gauche élément Référence sur le sous-arbre droit

Exemple d arbre binaire Racine Fils gauche A Fils droit Nœud interne B E Feuille C D F Profondeur 3 Sous arbre gauche

TAD arbre binaire Extrait de https://moodle.insa-rouen.fr/file.php/60/cours/collection-4pagesparpage.pdf

Complexité et arbre binaire (1) La complexité d une opération sur un arbre binaire peut dépendre de la profondeur maximum d un arbre. Elle est notée h. h est proportionnel àlog(n) si l arbre binaire est équilibré

Complexité et arbre binaire (2) L insertion, et la suppression à une complexité qui dépend de l information initiale sur l élément concerné O(1) à partir d un nœud connu O(log(n)) à partir de la racine si : Arbre binaire équilibré A chaque nœud traversé, la sélection du fils gauche ou du fils droit pour atteindre le nœud concerné est unique Sinon O(n) pire cas

Complexité et arbre binaire (3) La recherche d un élément dans un arbre binaire O(log(n)) dans le meilleur des cas O(n) dans le pire des cas Les raisons étant les mêmes que pour l insertion ou la suppression Les raisons étant les mêmes que pour l insertion ou la suppression d un élément à partir de la racine d un arbre car cette procédure nécessite également la recherche du nœud concerné

Parcours d un arbre Parcours en profondeur 1. Préfixé 2. Infixé ABCDEF CBDAEF 3. Postfixé CDBFEA A On explore tous les fils gauches en premier jusqu à une feuille, puis récursivement en remontant vers la racine on explore le fils droit, puis à nouveau tous les fils gauches B E 1 C 3 D F 2

Parcours d un arbre Parcours en largeur Parcours tous les éléments (noeuds) en commençant par ceux à la profondeur 1 et en continuant avec ceux aux profondeurs 2, 3, 1 A 2 B E 3 C D F Résultat : ABECDF

Les arbres binaires de recherche Structure de données permettant de réaliser des recherches avec insertion/suppression de nœuds de manière efficace avec conservation de la notion d ordre entre les éléments de l arbre Pour chaque nœud N de l arbre binaire Toutes les valeurs du sous-arbre gauche sont plus petites que N Toutes les valeurs du sous-arbre droit sont plus grandes que N

Exemple 15 7 20 6 9 25 Insertion 5

Insertion d un élément Stratégie : L élément doit être ajouté à un nœud feuille préservent l ordre interne à la structure de données 15 7 20 6 9 25 5 Possible par un simple parcours en profondeur

Insertion des éléments 15 7 20 6 9 25 5 8 23

Suppression élément Stratégie : l élément pivot du sous-arbre droit remplace le nœud supprimé 15 7 68 20 6 9 25 5 23 8

Réorganisation de l arbre Pour éviter de produire une structure linéaire non efficace suite à des insertions et suppressions, il est parfois nécessaire de restructurer l organisation de l arbre binaire pour la rendreplusefficace 868 6 6 5 868 5

Python et les TAD arbre Ecrire sa propre structure de données (classe) Utiliser une librairie existante pour les arbres binaires pyavl : librairie avl (les avl étant des arbres binaires de recherche) écrite initialement en C avec un wrapper python représentation interne spécialisée dans une thématique particulière comme les parseurs XML : SAX Utiliser une librairie sur les graphes python graph les arbres (binaires) étant une sous classe des graphes http://sourceforge.net/projects/pyavl/ http://docs.python.org/library/xml.sax.html http://code.google.com/p/python-graph/

Code python : Arbre binaire

Code python : Arbre binaire