ARBRES. Arbres. Arbres binaires. Traversées d arbres. Patron de conception: gabarit de méthode (template method pattern)



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

Arbres binaires de recherche

Les arbres binaires de recherche

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

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

ARBRES BINAIRES DE RECHERCHE

Application Form/ Formulaire de demande

Programmation Par Objets

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

TD/TP PAC - Programmation n 3

Organiser vos données - Big Data. Patrick Millart Senior Sales Consultant

Formulaire d inscription (form also available in English) Mission commerciale en Floride. Coordonnées

Once the installation is complete, you can delete the temporary Zip files..

Programmer en JAVA. par Tama

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

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Objets et Programmation. origine des langages orientés-objet

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Règles et paramètres d'exploitation de Caparmor 2 au 11/12/2009. Pôle de Calcul Intensif pour la mer, 11 Decembre 2009

Quelques Algorithmes simples

Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration

DOCUMENTATION - FRANCAIS... 2

Chapitre VI- La validation de la composition.

Deadline(s): Assignment: in week 8 of block C Exam: in week 7 (oral exam) and in the exam week (written exam) of block D

Bases Java - Eclipse / Netbeans

Procédure d installation de la Sauvegarde de Windows Server

Township of Russell: Recreation Master Plan Canton de Russell: Plan directeur de loisirs

JSIam Introduction talk. Philippe Gradt. Grenoble, March 6th 2015

Chapitre I Notions de base et outils de travail

Qualité et ERP CLOUD & SECURITY (HACKING) Alireza MOKHTARI. 9/12/2014 Cloud & Security

Auto-évaluation Programmation en Java

Chapitre 7. Récurrences

SERVEUR DE SAUVEGARDE POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

Lamia Oukid, Ounas Asfari, Fadila Bentayeb, Nadjia Benblidia, Omar Boussaid. 14 Juin 2013

IFT785 Approches Orientées Objets. FINAL Été Remise : Jeudi 19 août 2002 à 9h00 am

Le passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past!

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

English Q&A #1 Braille Services Requirement PPTC Q1. Would you like our proposal to be shipped or do you prefer an electronic submission?

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

LOG4430 : Architecture logicielle et conception avancée

TP1 : Initiation à Java et Eclipse

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Marketing comportemental et digital hospitality

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Présentation Windows Azure Hadoop Big Data - BI

2013 IIHF WORLD WOMEN S HOCKEY CHAMPIONSHIP

Solutions du chapitre 4

1 Modélisation d être mauvais payeur

La mémoire. Un ordinateur. L'octet. Le bit

Installation de IBM SPSS Modeler Server Adapter

DNS : Domaine Name System

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Restaurant Application Quick Reference Guide

Chapitre 10. Les interfaces Comparable et Comparator 1

L arbre qui tombe est plus bruyant que la forêt qui pousse

INF601 : Algorithme et Structure de données

affichage en français Nom de l'employeur *: Lions Village of Greater Edmonton Society

Comment faire son pré-enregistrement en ligne avec Holland America Line

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE :

Paxton. ins Net2 desktop reader USB

Devoir Surveillé de Sécurité des Réseaux

Gestion des prestations Volontaire

DOCUMENTATION - FRANCAIS... 2

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Stratégie IT : au cœur des enjeux de l entreprise

Plan du cours. Historique du langage Nouveautés de Java 7

Par Laurent DESECHALLIERS. Mastère Spécialisé en Management de Projets en Milieu Industriel. CESI de Rouen Promotion 2002/2003.

If you understand the roles nouns (and their accompanying baggage) play in a sentence...

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Mines Nantes 20/05/2014. Institut Mines-Telecom : a national network 12 Engineering Graduate schools & 1 Business school. 2 Institut Mines-Télécom

Plan. Patrons de conception. Motivations. Design Pattern : principe. Philippe Collet

Document Object Model (DOM)

Introduction aux concepts d ez Publish

SCHOLARSHIP ANSTO FRENCH EMBASSY (SAFE) PROGRAM APPLICATION FORM

Grégoire de Lassence. Copyright 2006, SAS Institute Inc. All rights reserved.

SAP SNC (Supply Network Collaboration) Web Package. (Français / English) language. Edition 2013 Mars

Comment faire reconnaître l espace disque ajouté à votre OS?

TD3: tableaux avancées, première classe et chaînes

Please kindly find below a synoptic table showing the various ways of transport from Mahe to La Digue, with a stop over on Praslin:

Module Title: French 4

Les défis statistiques du Big Data

Plan du cours : Zippers. Des fonctions sur les listes avec position. Des fonctions sur les listes avec position

Data issues in species monitoring: where are the traps?

Exemple PLS avec SAS

Demande d inscription aux cours IB pour septembre 2012

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

Génération de code binaire pour application multimedia : une approche au vol

Installation de VirtualPOPC-1 sur Ubuntu Server LTS 64bits

TD/TP PAC - Programmation n 3

Machines virtuelles fonctionnelles (suite) Compilation ML Java

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

Introduction à l informatique en BCPST

Analyse,, Conception Objet

Déploiement de SAS Foundation

Comment Créer une Base de Données Ab Initio

Travaux Pratiques : Lucène - Gestion d un index plein texte

Domain Name System. F. Nolot

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

TARIFS PIETONS SAISON PEDESTRIAN RATES SEASON 2014/2015 TARIFS ASSURANCE CARRE NEIGE CARRE NEIGE INSURANCE RATES 2014/2015

Transcription:

ARBRES binaires Traversées d arbres Patron de conception: gabarit de méthode (template method pattern) Structures de données pour arbres 5.1

un arbre représente une hiérarchie - structure organisationnelle d une corporation Electronics R Us R&D Sales Purchasing Manufacturing Domestic International TV CD Tuner Canada S. America Overseas Africa Europe Asia - table des matières d un livre Australia student guide overview grading environment programming support code exams homeworks programs 5.2

Un autre exemple Système de fichier de Unix ou de DOS/Windows /user/rt/courses/ cs016/ cs252/ grades homeworks/ programs/ projects/ grades hw1 hw2 hw3 pr1 pr2 pr3 papers/ demos/ buylow sellhigh market 5.3

Terminologie A est le nœud racine. B est le parent (ou père) de D et E. C est le frère (sibling) de B. D et E sont les enfants (ou descendants) de B. D, E, F, G, I sont des nœuds extérieurs, ou feuilles. A, B, C, H sont des nœuds intérieurs. La profondeur (niveau) de E est 2 La hauteur de l arbre est 3. Le degré (nombre d enfants) du nœud B est 2. A B C D E F G H I Propriété: (# liens) = (#nœuds) 1 5.4

binaires Arbre ordonné: les enfants de chaque nœud sont ordonnés. Arbre binaire: arbre ordonné où tous les nœuds intérieurs sont de degré 2. Définition récursive d un arbre binaire: Un arbre binaire est - un nœud extérieur (feuille), ou - un nœud intérieur (la racine) et deux arbres binaires (sous-arbre gauche et sous-arbre droit) 5.5

Exemples d arbres binaires expression arithmétique + 3 1 rivière + 5 4 + + 7 2 + 2 8 + 4 6 ((((3 (1 + (4 + 6))) + (2 + 8)) 5) + ( 4 (7 + 2))) 5.6

Exemples d arbres binaires arbres de décision Want a fast meal? YES How about coffee? NO Are you willing to splurge? YES Starbucks NO Do you like free samples? YES Al Forno NO Cafe Paragon YES East Side Pockets NO Spike s 5.7

Propriétés des arbres binaires (# nœuds extérieurs ) = (# nœuds intérieurs) + 1 (# nœuds au niveau i) 2 i (# nœuds extérieurs) 2 (hauteur) (hauteur) log 2 (# nœuds extérieurs) (hauteur) log 2 (# nœuds) 1 (hauteur) (# nœuds intérieurs) = ((# nœuds) 1)/2 Niveau 0 1 2 3 4 5.8

Le TAD (Trees) méthodes génériques de contenant - size(), isempty(), elements() méthodes positionnelles de contenant - positions(), swapelements(p,q), replaceelement(p,e) méthodes de requête - isroot(p), isinternal(p), isexternal(p) méthodes accessoires - root(), parent(p), children(p) méthodes de mise à jour - spécifiques à l application InspectableContainer InspectablePositionalContainer InspectableVector PositionalContainer InspectableTree InspectableList Tree 5.9

TADs pour Binaires méthodes accessoires - leftchild(p), rightchild(p), sibling(p) méthodes de mise à jour - expandexternal(p), removeaboveexternal(p) - autres méthodes spécifiques à l application InspectableContainer InspectablePositionalContainer PositionalContainer InspectableTree Tree InspectableBinaryTree BinaryTree 5.10

Traversée d arbres traversée en pré-ordre Algorithm preorder(v) visit node v for each child w of v do recursively perform preorder(w) comme lire un document du début à la fin Article Titre Résumé 1 2 3 Références 1.1 1.2 2.1 2.2 2.3 3.1 3.2 1 2 3 4 7 11 14 5 6 8 9 10 12 13 5.11

traversée en post-ordre Traversée d arbres Algorithm postorder(v) for each child w of v do recursively perform postorder(w) visit node v commande Unix du (disk usage) 249K cs016/ 2K 5124K /user/rt/courses/ 1K 4874K cs252/ 1K grades 8K 10K 229K 4870K homeworks/ programs/ projects/ 1K 1K 1K grades 3K hw1 3K hw2 2K hw3 4K pr1 57K pr2 97K pr3 74K 82K papers/ 1K 4787K demos/ 1K buylow 26K sellhigh 55K market 4786K 5.12

Évaluation d expressions arithmétiques spécialisation d une traversée post-ordre Algorithm evaluateexpression(v) if v is an external node return the variable stored at v else let o be the operator stored at v x evaluateexpression(leftchild(v)) y evaluateexpression(rightchild(v)) return x o y / + + 6 + 3 2 3 3 1 9 5 7 4 5.13

Traversée d arbres binaires traversée in-ordre Algorithm inorder(v) recursively perform inorder(leftchild(v)) visit node v recursively perform inorder(rightchild(v)) afficher une expression arithmétique - spécialisation d une traversée in-ordre - afficher ( avant la traversée du sous-arbre gauche - afficher ) après la traversée du sous-arbre droit 3 1 + 4 + + 6 + 2 8 5 + 4 + 7 2 ((((3 (1 + (4 + 6))) + (2 + 8)) 5) + ( 4 (7 + 2))) 5.14

Traversée par tour d Euler traversée générique d un arbre binaire les traversées pré-ordre, in-ordre et post-ordre sont des cas spéciaux de la traversée par tour d Euler marche autour de l arbre et visite de chacun des nœuds à trois reprises: - à la gauche - par-dessous - à la droite / + + 6 + 3 2 3 3 1 9 5 7 4 5.15

Gabarit de méthode (Template Method Pattern) mécanisme de calcul générique qui peut être spécialisé en redéfinissant certaines étapes (un autre patron de conception) réalisation en utilisant une classe abstraite Java avec des méthodes qui peuvent être redéfinies par ses sousclasses. public abstract class BinaryTreeTraversal { protected BinaryTree tree;... protected Object traversenode(position p) { TraversalResult r = initresult(); if (tree.isexternal(p)) { external(p, r); } else { left(p, r); r.leftresult = traversenode(tree.leftchild(p)); below(p, r); r.rightresult = traversenode(tree.rightchild(p)); right(p, r); } return result(r); } 5.16

Spécialisation de la traversée générique d arbres binaires affichage d une expression arithmétique public class PrintExpressionTraversal extends BinaryTreeTraversal {... } protected void external(position p, TraversalResult r) { System.out.print(p.element()); } protected void left(position p, TraversalResult r) { System.out.print("("); } protected void below(position p, TraversalResult r) { System.out.print(p.element()); } protected void right(position p, TraversalResult r) { System.out.print(")"); } 5.17

Structure de données chaînée pour arbres binaires root 5 size Baltimore Chicago New York Providence Seattle 5.18

Représentation d arbres généraux arbre T A B C D E F G arbre binaire T' représentant T A B E C F D G 5.19