T.D. LES ARBRES D E F G H I J K L

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

Les arbres binaires de recherche

INF601 : Algorithme et Structure de données

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

Quelques Algorithmes simples

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

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

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Resolution limit in community detection

ARBRES BINAIRES DE RECHERCHE

L exclusion mutuelle distribuée

Cours d initiation à la programmation en C++ Johann Cuenin

Algorithmique, Structures de données et langage C

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Représentation d un entier en base b

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

Algorithmique et Programmation

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

chapitre 4 Nombres de Catalan

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

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Introduction à MATLAB R

Formats d images. 1 Introduction

INP E N S A T T O U L O U S E ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß. 7UDYDLO'LULJp

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

Bases de programmation. Cours 5. Structurer les données

Travaux Dirigés n 1 : chaînes de caractères

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

T. A. D. pile. Chapitre 7 (suite) Listes particulières. T. A. D. file. représentation chaînée de la file algorithmique. Files

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Conventions d écriture et outils de mise au point

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

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

BAREME sur 40 points. Informatique - session 2 - Master de psychologie 2006/2007

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Arbres binaires de recherche

CREG : versailles.fr/spip.php?article803

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

Manuel utilisateur. des. listes de diffusion. Sympa. l'université Lille 3

Note de cours. Introduction à Excel 2007

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Système de Gestion de Fichiers

Fiche 02. PRODUITS La gestion des mandats. Généralités GESTION SIMPLIFIEE GESTION STANDARD AVEC RELANCES

Guide d utilisation du logiciel e-enfance

Résolution d équations non linéaires

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Algorithmes de recherche

ÉPREUVE COMMUNE DE TIPE Partie D

Choisir le mode d envoi souhaité. Option 1 : Envoyer un SMS à un nombre réduit de numéros (0 10 )

Je découvre le diagramme de Venn

DATA MINING SPATIAL UN PROBLEME DE DATA MINING MULTI-TABLES

Programmation par contraintes. Laurent Beaudou

MIS 102 Initiation à l Informatique

Chap III : Les tableaux

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Licence Sciences et Technologies Examen janvier 2010

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Initiation à la Programmation en Logique avec SISCtus Prolog

Démonstration d utilisation De NesmaCom

N.B : L explorateur vivement conseillé pour utiliser le service d inscription est Firefox. Accessible à :

TUTORAT DU PORTAIL FAMILLES

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

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Définitions. Numéro à préciser. (Durée : )

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

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

Utiliser le service de messagerie électronique de Google : gmail (1)

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

SOMMAIRE AIDE À LA CRÉATION D UN INDEX SOUS WORD. Service général des publications Université Lumière Lyon 2 Janvier 2007

Grille fluide. Une grille fluide sert à structurer la mise en page, la rendre harmonieuse et faciliter le passage au responsive web design

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Première étape : créer le fichier de données - extraire les données de PMB et les transférer dans Excel

Créez des étiquettes avec Microsoft Word et Excel (Versions Windows 10 et 11)

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

Vérifier avant de lancer l'impression que le nombre et les libellés retenus pour l'impression sont bien ceux qui sont demandés.

TP Protocoles SMTP et POP3 avec Pratiquer l algorithmique

Initiation à l algorithmique

DÉRIVÉES. I Nombre dérivé - Tangente. Exercice 01 (voir réponses et correction) ( voir animation )

Calculabilité Cours 3 : Problèmes non-calculables.

Programmation C. Apprendre à développer des programmes simples dans le langage C

I - J inscris mon enfant pour le mois suivant (du 5 au 20 du mois en cours)

Algorithmes d'apprentissage

Quelques algorithmes simples dont l analyse n est pas si simple

Formation tableur niveau 1 (Excel 2013)

Les capitalistes sociaux sur Twitter : détection via des mesures de similarité

Artisans, commerçants et professionnels libéraux. L'auto-entrepreneur. Édition janvier 2012

BONUS MALUS. Voici, la façon de calculer la prime : Le montant de la prime à acquitter est égale à : P = PB. C où : P

Le modèle de données

Cours Informatique 1. Monsieur SADOUNI Salheddine

SPHINX Logiciel de dépouillement d enquêtes

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

LE PROBLEME DU PLUS COURT CHEMIN

Styler un document sous OpenOffice 4.0

Transcription:

MI2E - 1E ANNÉE ALGORITHMIQUE GÉNÉRALE C. Murat, V. Mousseau T.D. LES ARBRES Exercice 1 : Considérons l arbre suivant. A B C D E F G H I J K L M N a) Quels sont les fils du noeud C? b) Quel est le père du noeud C? c) Quel noeud est la racine du graphe? d) Quels noeuds sont des feuilles? e) Quels noeuds sont les ascendants du noeud C? f) Quels noeuds sont les descendants du noeud C? g) Quels sont les frères du noeud C. h) Quels sont les noeuds à gauche de C? à sa droite? i) Quelle est la profondeur du noeud C j) Quelle est la hauteur du noeud C Exercice 2 : Lister les noeuds de l arbre de l exercice 1 suivant un parcours a) préfixé, b) postfixé, c) infixé. Exercice 3 : Supposons que les tableaux PREFIXE[n], INFIXE[n] et POSTFIXE[n] donnent la position de chaque noeud d un même arbre dans les parcours préfixé, infixé et postfixé, respectivement. Décrire un algorithme permettant de déterminer si le noeud i est un ascendant du noeud j, quels que soient les noeuds i et j. Exercice 4 : Placer une croix à l intersection de la ligne i et de la colonne j si les deux conditions représentées par cette ligne et cette colonne peuvent être réalisées en même temps. Par exemple, on mettra une croix à l intersection de la ligne 3 et de la colonne 2 s il est vrai que n peut être ascendant

propre de m et en même temps que n précède m dans un parcours infixé. n est à gauche de m n est à droite de m n est un ascendant propre de m n est un descendant propre de m n est avant m dans un parcours préfixé infixé postfixé Notations et définitions de primitives pour les arbres : On note n un noeud de l arbre, e une étiquette d un noeud et A un arbre. PERE(n,A) retourne le père du noeud n dans l arbre A. Si n est la racine de A, alors le noeud vide est retourné. PREMIER-FILS(n,A) retourne le fils le plus à gauche du noeud n dans l arbre A. Si n est une feuille, alors le noeud vide est retourné. FRERE-DROIT(n,A) retourne le frère droit du noeud n dans l arbre A. Si n est fils unique, alors le noeud vide est retourné. ETIQUETTE(n,A) retourne l étiquette du noeud n dans l arbre A qui est étiqueté. CREERi(e,A 1,A 2,...,A i ) pour chaque valeur de i=0,1,2,..., CREERi construit un nouveau noeud d étiquette e et lui associe i enfants qui sont les racines des sous-arbres A l, A 2,..., A i dans cet ordre de gauche à droite. Si i = 0 alors le nouveau noeud est à la fois une feuille et une racine RACINE(A) retourne le noeud qui est racine de l arbre A, ou le noeud vide si l arbre A est vide RAZ(A) transforme l arbre A existant en arbre vide. Exercice : En prenant la représentation des arbres par tableau des pères, que l on rappellera, écrire la primitive FRERE-DROIT(n,A). Exercice 6 : Donner la représentation de l arbre suivant avec la structure premier-fils, frère-droit que l on précisera. 1 2 3 4 Exercice 7 : En prenant la représentation des arbres par liste chaînée des fils, que l on précisera, écrire les primitives suivantes : a) PREMIER-FILS(n,A) b) PERE(n,A) c) FRERE-DROIT(n,A) 2

d) RACINE(A) NB : on pourra, si besoin, utiliser les primitives des listes déjà définies dans les TDs précédents Exercice 8 : Ecrire la primitive CREER2(e,A 1,A 2 ) en prenant la représentation père, premier-fils, frère-droit d un arbre. Exercice 9 : a) Comment définit-on les descendants d un noeud? b) Quelles sont les descendants du noeud B dans l arbre ci-dessous. A C B F Z I Q T D H G E J K L M On souhaite définir une fonction DESCENDANTS(A :arbre, n :noeud) qui prenne en entrée un arbre A et n un noeud de cet arbre, et donne en sortie le nombre de descendants de ce noeud dans l arbre. c) Expliquer la représentation des arbres par tableau des pères et l illustrer sur l arbre précédent. d) En supposant que l arbre est représenté par tableau des pères, donner la fonction en C de DES- CENDANTS (arbre A, noeud n)., Quelle est sa complexité? L appliquer pour le noeud B de l arbre donné en b). e) En supposant que l arbre est représenté par pointeur du type père, premier-fils, frère-droit, donner la fonction en C de DESCENDANTS (arbre A 1 noeud n). Quelle est sa complexité? L appliquer pour le noeud B de l arbre donné en b). Vous définirez au préalable correctement votre structure de données en C et éventuellement les conventions choisies. Exercice 10 : a) Donnez la profondeur des noeuds M, H et X dans l arbre ci-dessous. b) Soit le type de données suivant pour représenter les arbres : typedef struct typenoeud { int étiquette i ; struct typenoeud *pere struct typenoeud *premier-fils struct typenoeud *frere-droit } noeud ; et dans ce cas le type de données ARBRE est un pointeur sur la cellule représentant la racine de l arbre, c est-à-dire : 3

X O C N D L J H E G K I M F Q B typedef noeud *arbre i Donnez la représentation par pointeur et noeud du sous-arbre précédent restreint aux noeuds C, L, 1, H, G, K, J, Q. c) En utilisant le type de données défini dans la question b), donnez une fonction qui prend en entrée le noeud n et l arbre A et donne en sortie la profondeur de n dans A (vous expliquerez, de façon" littéraire ", rapidement l idée de votre fonction). d) Appliquez votre fonction pour le noeud Q de l arbre de la question a). e) Reprendre les questions c) et d) mais en supposant que le pointeur père de chaque noeud ne fasse plus partie de la structure. Exercice 11 : La longueur du chemin intérieur d un arbre binaire complet est la somme, restreinte à tous les noeuds internes de l arbre, de la profondeur de chaque noeud. De même, la longueur du chemin extérieur est la somme, restreinte à toutes les feuilles de l arbre, de la profondeur de chaque feuille. On considère un arbre binaire complet avec n noeuds internes, un chemin intérieur de longueur i, et un chemin extérieur de longueur e. Démontrer que e = i + 2n (commencer par le vérifier sur 2 ou 3 exemples que vous construirez). Exercice 12 : On supposera que la mise en oeuvre des arbres binaires est faite par pointeurs filsgauche, fils-droit, père. a) Ecrire une fonction récursive qui étant donné un arbre binaire B, imprime l étiquette de chaque noeud de l arbre, selon un parcours préfixé. b) Ecrire une fonction non récursive qui étant donné un arbre binaire B, imprime l étiquette de chaque noeud de l arbre. Si besoin, vous pouvez utiliser une pile (et les primitives déjà définies qui lui sont associées) comme structure de données auxiliaire. c) Appliquez pas à pas vos deux fonctions sur l arbre suivant 4

1 2 3 4 7 6