Cours numéro 9 : arbres binaires et de recherche
|
|
- Antonin Labrie
- il y a 2 ans
- Total affichages :
Transcription
1 Cours numéro 9 : arbres binaires et de recherche LI213 Types et Structures de données Licence d Informatique Université Paris 6
2 Arbre Arbre Un arbre est un ensemble fini A d éléments, liés entre eux par une relation, dite de parenté, vérifiant ces propriétés : Relation notée x est le parent de y ou y est le fils de x Il existe un unique élément r (racine) de A sans parent À part r, tout élément de A possède un unique parent r a c d b f g e Les éléments de A sont des nœuds Les nœuds sans fils sont des feuilles ou nœuds terminaux Les descendants d un nœud x forment le sous-arbre de racine (ou issu de) x Un arbre n-aire est un arbre dont les nœuds ont tous au plus n fils.
3 Arbre binaire Arbre binaire Un arbre binaire est un arbre 2-aire. Les fils sont spécialisés et nommés : fils gauche et fils droit. On confondra souvent le fils et le sous-arbre issu du fils. Arbre binaire - définition récursive Un arbre binaire A est défini par : L arbre vide ( ) est un arbre binaire l arbre de racine r, de fils gauche A g et de fils droit A d est un arbre binaire si A g et A d sont des arbres binaires.
4 Représentation d un arbre binaire par un type somme Avec un enregistrement type a cellule = { contenu : a ; fg : a arbre ; fd : a arbre } and a arbre = Nil Noeud of a cellule Avec un triplet (présentation infixe) type a bintree = Nil Node of a bintree * a * a bintree # let arbre=noeud{ contenu=1 ; fg=noeud{ contenu=2 ; fg=nil ; fd=noeud{contenu=4 ; fg=nil ;fd=nil } } ; fd=noeud{contenu=3 ; fg=nil ;fd=nil} } # let tree=node( Node( Nil, 2, Node(Nil,4,Nil) ) 1, Node(Nil,3,Nil), )
5 Fonctions simples (avec bintree) Récupérer le contenu du nœud racine # let contenu a = match a with Nil -> failwith "contenu" Node(, x, )-> x val contenu : a bintree -> a = <fun> Récupérer les fils (sous-arbres gauche et droit) # let fg = function Nil -> failwith "fg" Node(fg,, ) -> fg val fg : a bintree -> a bintree = <fun> # let fd = function Nil -> failwith "fd" Node(,,fd) -> fd val fd : a bintree -> a bintree = <fun>
6 Fonctions simples (2) h 1 = 1 + max(h 2, h 3 ) = 2 taille d un arbre (nombre de nœuds) # let rec taille a = match a with Nil -> 0 Node(fg,,fd) ->1+(taille fg)+(taille fd) val taille : a bintree -> int = <fun> hauteur d un arbre 1 h(a) = { 1 si A = 1 + max(h(a g ), h(a d )) sinon. h 2 = 1 h 3 = # let rec hauteur = function Nil -> -1 Node(fg,,fd) ->1 + max (hauteur fg) (hauteur fd) val hauteur : a bintree -> int = <fun>
7 Fonctions sur les arbres (3) fonction elt tree # let rec elt tree x a = match a with Nil -> false Node(fg,x,fd) -> true (*x dans motif!*) Node(fg,y,fd) -> (x=y) (elt tree x fg) (elt tree x fd) val elt tree : a -> a bintree -> bool = <fun> construction de bintree : fonction map tree # let rec map tree f a = match a with Nil -> Nil Node(fg,y,fd) -> Node( map tree f fg, f y, map tree f fd ) val map tree : ( a -> b) -> a bintree -> b bintree = <fun>
8 Utilisation : représentation d un dictionnaire Un dictionnaire est un ensemble de couples clé/valeur où Les clés forment un ensemble totalement ordonné Chaque valeur est associée à une unique clé. Chaque clé caractérise une unique valeur. Un dictionnaire sert à représenter un dictionnaire, une liste de contacts, une base de données triée par un identifiant, etc... Problème : comment représenter un dictionnaire? un tableau trié? On peut retrouver facilement une valeur (par dichotomie). Mais l insertion et la suppression suppose de décaler (au pire) l ensemble des éléments... une liste triée? L insertion et la suppression sont rapides. La recherche est lente... Nouvelle proposition : Arbre Binaire de Recherche (ABR)
9 Définition Dans ce qui suit, on utilisera c(x) comme notation indiquant la clé du nœud x. Dans les programmes, on simplifiera le code en identifiant le contenu du nœud à la clé. Arbre Binaire de Recherche Un Arbre Binaire de Recherche est : un arbre binaire A x A, y A g (x), z A d (x), c(y) < c(x) < c(z) 8 9 A Le parcours infixe d un ABR donne la liste triée des clés. # let rec infixe a = match a with Nil -> [] Node(fg,c,fd) -> (infixe (infixe fd) val infixe : a bintree -> a list = <fun> infixe A ::= [8 ;9 ;10 ;12 ;13 ;15 ;17 ;19]
10 Recherche du plus petit/grand élément 8 9 A Dans un ABR : La plus petite clé se trouve dans le nœud le plus à gauche Décalage vers la droite = augmentation de la clé La plus grande clé se trouve dans le nœud le plus à droite Décalage vers la gauche = diminution de la clé # let rec getmin = function Nil -> failwith "getmin" Node(Nil,c, ) -> c Node(fg,, ) -> getmin fg # let rec getmax = function Nil -> failwith "getmax" Node(,c,Nil) -> c Node(,,fd) -> getmax fd
11 Vérification de la structure d un ABR Problème : Vérifier qu un arbre binaire est un ABR. # let rec checkabr = function Nil -> true Node(Nil,,Nil) -> true Node(Nil,c,fd) -> (checkabr fd) && (c<getmin fd) Node(fg,c,Nil) -> (checkabr fg) && (getmax fg<c) Node(fg,c,fd) -> (checkabr fd) && (c<getmin fd) && (checkabr fg) && (getmax fg<c) val checkabr : a bintree -> bool = <fun> Remarque : La fonction (<) pourrait être passée en argument pour paramétrer le choix de la relation d ordre sur les clés.
12 Recherche d un élément par sa clé Problème : Vérifier qu un élément (une clé) est dans un ABR. # let rec eltabr x = function Nil -> false Node(,c, ) when c=x -> true Node(fg,c,fd) -> if (x<c) then eltabr x fg else eltabr x fd val eltabr : a -> a bintree -> bool = <fun> Remarque : La fonction (<) pourrait être passée en argument pour paramétrer le choix de la relation d ordre sur les clés.
13 Insertion d un élément Problème : Insérer un nouvel élément (une nouvelle clé) # let insertion e = function Nil -> Node(Nil,e,Nil) Node(fg,c,fd) -> if (e<c) then Node(insertion e fg,c,fd) else Node(fg,c,insertion e fd)
14 Suppression d un élément (1) Sous-problème : Suppression du max d un ABR Remarques : la fonction va rendre un couple : max,abr \ {max} propriété utilisée : un max n a pas de sous-arbre droit # let rec supprmax = function Nil -> failwith "supprmax" Node(fg,m,Nil) -> (m,fg) Node(fg,rac,fd) ->let (m,nvfd)=supprmax fd in (m,node(fg,rac,nvfd)) val supmax : a bintree -> a * a bintree = <fun>
15 Suppression d un élément (2) Idées de l algorithme : Si l élément n est pas la racine de l arbre, il suffit de le supprimer dans le bon fils (gauche ou droit) et de recréer l arbre complet à partir de ce nouveau fils. Si l élément est la racine, alors le bon candidat à son remplacement est soit son fils s il n en a qu un, soit le max de son fils gauche (ou le min de son fils droit) # let rec suppabr e = function Node(fg,c,Nil) when c=e -> fg Node(Nil,c,fd) when c=e -> fd Node(fg,c,fd) when c=e -> let (m,neofg)=supmax fg in Node(neofg,m,fd) Node(fg,c,fd) when c<e -> Node(fg,c,suppABR e fd) Node(fg,c,fd) when c>e -> Node(suppABR e fg,c,fd) -> failwith "suppabr" val suppabr : a bintree -> a bintree = <fun>
16 Intérêt des ABR Les Arbres Binaires de Recherche sont une structure de données qui permet de représenter correctement un ensemble ordonné de clés. Les alternatives (tableaux ou listes) ont de bien moins bons comportements dans les opérations usuelles : ajout / suppression / recherche. tous les algorithmes des ABRs, le temps de calcul est proportionnel à la hauteur de l arbre (et non au nombre de clés comme pour les autres alternatives) toutefois, dans le pire des cas, la hauteur de l arbre est le nombre de clés dans l arbre. En moyenne, les ABRs sont quand même souvent intéressants. Pour éviter les mauvais cas : équilibrage des arbres.
x n = x x n 1 Exercice 3 Le but de cet exercice est de modéliser les suites définies par récurrence de la façon suivante :
Ocaml - Exercices Exercice Définir en Ocaml les fonctions suivantes:. f : x sin x + cos x. g : x x 3x+ x x 5 3. Fonction h calculant la moyenne géométrique de deux float positifs ( xy) Exercice Ecrire
Arbres bien équilibrés
Arbres bien équilibrés ENSIIE : Programmation avancée 1/24 Recherche par dichotomie on aimerait avoir des opérations de recherche, d insertion et de suppression efficaces en moyenne et dans le pire des
I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3
I Arbres binaires 2014-2015 Table des matières 1 Rappels 2 1.1 Définition................................................ 2 1.2 Dénombrements............................................ 2 1.3 Parcours.................................................
Algorithmique et Programmation Impérative 2 Les arbres binaires de recherche
Algorithmique et Programmation Impérative 2 Les arbres binaires de recherche N.E. Oussous oussous@lifl.fr FIL USTL SDC - Licence p.1/16 Arbres binaires de recherche Un arbre binaire T est un arbre binaire
Arbres binaires de recherche (ABR) Binary Search Trees (BST)
LSVIII-BIM Algorithmie, 2015 Arbres binaires de recherche (ABR) Binary Search Trees (BST) I. Arbres binaires 1. Structure 2. Parcours II. Arbres binaires de recherche 1. Définition 2. Opérations sur les
Programmation fonctionnelle
1/30 Programmation fonctionnelle Notes de cours Cours 9 23 novembre 2011 Sylvain Conchon sylvain.conchon@lri.fr 2/30 Les notions abordées cette semaine Les foncteurs Set.Make et Map.Make d Ocaml Arbres
TP 4 -Arbres Binaires -
L3 Informatique Programmation fonctionnelle OCaml Année 2013/2014 TP 4 -Arbres Binaires - Un arbre binaire est une structure de données qui peut se représenter sous la forme d une hiérarchie dont chaque
Travaux dirigés n o 6
Travaux dirigés n o 6 Lycée Kléber MPSI, Option Info 2014/2015 Exercice 1 (Indexation d un arbre binaire) Ecrire une fonction Caml indexation : ( f, n) arbre_binaire -> (string,string) arbre_binaire qui
Arbres Binaires de Recherche : Introduction
Arbres Binaires de Recherche : Introduction I. Guessarian cours ISN 11 janvier 2012 LIAFA, CNRS and University Paris Diderot 1/13 Arbre Binaire de Recherche Un Arbre Binaire de Recherche (ABR) est un arbre
Induction sur les arbres
Induction sur les arbres Planning Motivations Comment définir les arbres? Équations récursives sur les arbres Complexité de fonctions sur les arbres Recherche dans un arbre binaire de recherche Recherche
Parcours d un arbre Arbres de recherche CHAPITRE 6. Arbres binaires. Karelle JULLIAN. MPSI, Option Info 2014/2015. Karelle JULLIAN
CHAPITRE 6 Arbres binaires Lycée Kléber MPSI, Option Info 2014/2015 1 Définitions 2 Parcours en largeur Parcours en profondeur Parcours préfixe, infixe, postfixe Reconstitution 3 Recherche Complexité Insertion
Corrigé des exercices
hapitre 1 option informatique orrigé des eercices Arbres binaires Eercice 1 La première solution qui vient à l esprit est sans doute celle-ci : let rec profondeur p = function Nil > [] a when p = 0 > [a]
Partie I : Automates et langages
2 Les calculatrices sont interdites. N.B. : Le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut
Séance de TD 05 TD05. 1 Exercice 1. 1.1 Question 1 : dessins des ABR avec hauteurs différentes AG51
Séance de TD 05 1 Exercice 1 1. Dessinez les arbres binaires de recherche de hauteur 2,3,4,5 et 6 pour le même ensemble de clés S = 1,4,5,10,16,17,21. 2. Donnez l algorithme de l opération ArbreRechercher(x,k)
Option Informatique Arbres binaires équilibrés
Option Informatique Arbres binaires équilibrés Sujet novembre 2 Partie II : Algorithmique et programmation en CaML Cette partie doit être traitée par les étudiants qui ont utilisé le langage CaML dans
4.2 Les arbres binaires de recherche
4.2 Les arbres binaires de recherche 4.2.1 Définition Les arbres binaires de recherche sont utilisés pour accélérer la recherche dans les arbres m-aires. Un arbre binaire de recherche est un arbre binaire
Arbres binaires. Chapitre 1. 1. Introduction. option informatique. 1.1 Définition formelle d un arbre binaire
Chapitre option informatique Arbres binaires. Introduction Dans son acceptation la plus générale, un arbre est un graphe acyclique orienté enraciné : tous les sommets, à l exception de la racine, ont un
Arbres binaires de recherche
Chapitre 1 Arbres binaires de recherche 1 Les arbre sont très utilisés en informatique, d une part parce que les informations sont souvent hiérarchisées, et peuvent être représentées naturellement sous
10' - LES ARBRES BINAIRES
Ch 10' - LES ARBRES BINAIRES On va restreindre les capacités des arbres en obligeant les nœuds à posséder au maximum deux sous-arbres. Ces nouveaux arbres seront plus faciles à maîtriser que les arbres
Série d exercices N 9 Arbres
Série d exercices N 9 Arbres Exercice 1 a) Ecrire une fonction ARBIN creerarbreentiers() qui permet de créer et de renvoyer l arbre d entiers suivant : b) Ecrire une fonction int feuilles(arbin a) qui
Introduction: Arbres de recherche + Rappel: Arbres binaires de recherche
Introduction: Arbres de recherche + Rappel: Arbres binaires de recherche Dictionnaires ordonnés: Opérations principales: trouver(k): find(k): Si le dictionnaire a une entrée de clé k, retourne la valeur
Arbres binaires de recherche
Chapitre 6 Arbres binaires de recherche 6.1 Introduction On a étudié le problème de la recherche dans une collection d éléments ordonnés entre eux : on a montré que Pour une liste contiguë, la recherche
alg - Arbres binaires de recherche [br] Algorithmique
alg - Arbres binaires de recherche [br] Algorithmique Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 25 avril 2015 Table des matières 1 Définition, Parcours, Représentation
Introduction aux listes. Cours numéro 5 : Les listes LI213 Types et Structures de données. Les listes simplement chaînées
Introduction aux s LI Types et Structures de données Liste : définition Collection ordonnée d éléments [x ;...; x n ] (au moins) accessibles l un après l autre de x jusqu à x n. Exemple : dans la [ ; ;5
Les arbres Florent Hivert
1 de 1 Algorithmique Les arbres Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 1 Algorithmes et structures de données La plupart des bons algorithmes fonctionnent
Arbres binaires et codage de Huffman
MP Option Informatique Premier TP Caml Jeudi 8 octobre 2009 Arbres baires et codage de Huffman 1 Arbres baires Soit E un ensemble non vide. On défit la notion d arbre baire étiqueté (aux feuilles) par
Structures de données, IMA S6
Structures de données, IMA S6 Arbres Binaires d après un cours de N. Devésa, Polytech Lille. Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@polytech-lille.fr Université Lille 1 - Polytech
Les structures de données. Rajae El Ouazzani
Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l
Algorithmique IN102 TD 3
Algorithmique IN10 TD 16 décembre 005 Exercice 1 Clairement, il existe des arbres de hauteur h à h + 1 éléments : il sut pour cela que leurs n uds internes aient au plus un ls non vide. On a alors un arbre
1 Généralités sur les arbres
1 Généralités sur les arbres 1.1 Graphes et arbres Définition 1.1. On appelle graphe un couple G = (V, E) d un ensemble fini V (les sommets ou noeuds) et d une partie E de V V (les arêtes). Si x, y V,
Université Paris Diderot Paris 7. TD n 2. Arbres Binaire de Recherche
Université Paris Diderot Paris L Informatique Algorithmique Année 00-0, er semestre TD n Arbres Binaire de Recherche Le type de donné arbre" sera utilisé pour indiquer l ensemble de toutes les Arbres Binaires
Programmation avancée
Programmation avancée Chapitre 1 : Complexité et les ABR (arbres binaires de recherche) 1 1 IFSIC Université de Rennes-1 M2Crypto, octobre 2011 Plan du cours 1 2 3 4 5 6 7 8 9 10 Algorithmes Définition
Les arbres binaires de recherche
Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s
Structures de données non linéaires
Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples
TP 8 : Arbres binaires de recherche
TP 8 : Arbres binaires de recherche Semaine du 17 Mars 2008 Exercice 1 Dénir une structure struct noeud_s permettant de coder un n ud d'un arbre binaire contenant une valeur entière. Ajouter des typedef
Chap. VII : arbres binaires
Chap. VII : arbres binaires 1. Introduction Arbre : collection d objets avec une structure hiérarchique Structure intrinsèque descendants d une personne (elle incluse) A ascendant connus d une personne
1 Définition. 2 Recherche dans un Arbre-B. 3 Insertion dans un Arbre-B. 4 Suppression dans un Arbre-B. Arbre-B
Déition Recherche Arbre-B Insertion Arbre-B Suppression Arbre-B Déition Recherche Arbre-B Insertion Arbre-B Suppression Arbre-B Plan... Les arbres-b Géraldine Del Mondo, Nicolas Delestre 1 Déition 2 Recherche
Arbres binaires de recherche
1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de
Cours d Algorithmique et Complexité
Cours d Algorithmique et Complexité Structures de données (2e suite) Catalin Dima Arbres binaires de recherche Propriété de base des arbres binaires de recherche Soit x un noeud de l arbre. Alors : 1.
C12. Les structures arborescentes. Août 2006
Les structures arborescentes Août 2006 Objectifs du C12 Connaître le principe de la structure d arbre binaire Connaître les détails d implémentation de la structure d arbre binaire de recherche Les structures
Partie 3. Gilles Lebrun (gilles.lebrun@unicaen.fr)
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
Avertissement au lecteur :
L1, informatique 2 nd semestre L1, Informatique, semestre 2 année 2006-2007 Gilles Bernot Notes de cours Université d Évry Avertissement au lecteur : Ce polycopié n est pas un document scolaire de référence
Listes et arbres binaires
Des structures de données dynamiques Listes, Listes ordonnées Arbres binaires, arbre binaires de recherche Listes chaînées Utile si le nombre d éléments n est pas connu à l avance et évolue beaucoup. Permet
Arbres binaires de recherche et arbres rouge noir
Institut Galilée lgo, rbres, Graphes I nnée 006-007 License rbres binaires de recherche et arbres rouge noir Rappels de cours et correction du TD rbres binaires de recherche : définitions Un arbre binaire
Structures de données et algorithmes
Structures de données et algorithmes Chapitre 4 Les arbres Nous introduisons dans ce chapitre le TDA : arbres binaires Ce TDA est intéressant pour plusieurs raisons : Les arbres de recherche binaire permettent
ARBRES BINAIRES DE RECHERCHE
ARBRES BINAIRES DE RECHERCHE Table de symboles Recherche : opération fondamentale données : éléments avec clés Type abstrait d une table de symboles (symbol table) ou dictionnaire Objets : ensembles d
Arbres Binaire. PSI DAKHLA Prof Youssef El marzak. 1 Prof Youssef Elmarzak
Arbres Binaire PSI DAKHLA Prof Youssef El marzak 1 Prof Youssef Elmarzak 1.introduction: Les arbre sont très utilisées en informatique, d une part parce que les informations sont souvent hiérarchisées,
Concours 2015 Épreuve d Informatique Filière : MP Durée de l épreuve : 3 heures. L utilisation d une calculatrice est autorisée.
A 2015 INFO. MP École des Ponts ParisTech, SUPAERO (ISAE), ENSTA ParisTech, Télécom ParisTech, Mines ParisTech, Mines de Saint-étienne, Mines Nancy, Télécom Bretagne, ENSAE ParisTech (filière MP), École
II arbres binaires de recherche
I arbres binaires On définit un arbre binaire par : type arbin=^noeud; noeud=record filsg,filsd:arbin; cle:longint Un arbre binaire a peut être vide (si a=nil). Sinon il est formé d un noeud (a^) contenant
ALGORITHMIQUE II. Récurrence et Récursivité. SMI AlgoII
ALGORITHMIQUE II Récurrence et Récursivité Récurrence Suite récurrente: la déition d une suite est la donnée d un terme général déi en fonction du (ou des) terme(s) précédant(s) D un terme initial qui
Gestion de la mémoire
Gestion de la mémoire ENSIIE : Programmation avancée 1/20 Langages et mémoire Différence principale entre langages de haut niveau : OCaml, Java, C# langages de bas niveau : C, C++ : Gestion de la mémoire
Exercice sur les arbres binaires de recherche
Exercice sur les arbres binaires de recherche Voici une liste aléatoire de 1 éléments. Notez que vous pouvez faire cet exercice en prenant une autre liste aléatoire ; évidemment, il y a peu de chances
Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014
Langage C/C++ TD 3-4 : Création dynamique d objets Hubert Godfroy 7 novembre 014 1 Tableaux Question 1 : Écrire une fonction prenant un paramètre n et créant un tableau de taille n (contenant des entiers).
Programmation avancée en C
Département Informatique Nom : Prénom : Année scolaire : 2007 2008 Date : 23 juin 2008 Module INF446 Session de juin Programmation avancée en C Contrôle de connaissance 1 de 45 minutes ÅERCI de répondre
Initiation aux algorithmes des arbres binaires
Initiation aux algorithmes des arbres binaires Plan I. Les arbres biniaires I. Définition II. Représentation graphique d un arbre III. Terminologie IV. Représentation en mémoire des arbres binaires V.
Exercice 1 : Questions diverses (5 points)
Université Claude Bernard Lyon 1 Licence Sciences, Technologies, Santé L2 Année 2010-2011, 2ème semestre LIF5 Algorithmique & Programmation procédurale Contrôle final du 20 juin 2011 Durée : 1h30 Note
Cours Algorithmique, 2ème partie AS IUT
Cours Algorithmique, 2ème partie AS IUT Cours 2 : Arbres Binaires Anne Vilnat http://www.limsi.fr/individu/anne/coursalgo Plan 1 Représentations arborescentes 2 Définition d un arbre binaire récursive
Fiche de TD-TP no. 4
Master 1 Informatique Programmation Fonctionnelle, p. 1 Fiche de TD-TP no. 4 Exercice 1. Voici trois façons différentes de définir le type Image : type Image = [[ Int ]] data Image = Image [[ Int ]] newtype
Arbres. Arbres binaires Représentation des arbres Fonctions primitives sur les arbres Parcours d arbres Arbres ordonnés. À quoi servent les arbres?
Arbres Arbres binaires Représentation des arbres Fonctions primitives sur les arbres Parcours d arbres Arbres ordonnés À quoi servent les arbres? Les arbres, comme les listes, permettent de représenter
Plan. Arbres équilibrés Arbres AVL Arbres a-b Quelques compléments de Java. Amphi 9 1
Plan Arbres équilibrés Arbres AVL Arbres a-b Quelques compléments de Java Amphi 9 1 Structures d'arbre Les structures d'arbre permettent de réaliser des opérations dynamiques, telles que recherche, prédécesseur,
Application des arbres binaires. Plan
Application des arbres binaires. Plan Compter les arbres binaires Tétrarbres (quad trees) Problème des n corps Recherche dans un intervalle Recherche dans un nuage de points Recherche dans un arbre d intervalles
RECURSIVITE ARBRES BINAIRES
RECURSIVITE ARBRES BINAIRES Insertion, Parcours pré, post et in ordre, Recherche, Suppression. Ch. PAUL Algorithmique Arbres binaires 1 ARBRE BINAIRE DEFINITION RECURSIVE Les arbres binaires sont des arbres
L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures)
L2 - lgorithmique et structures de données (nnée 2010/2011) Delacourt, Phan Luong, Poupet xamen (2 heures) Les documents (cours, TD, TP) sont autorisés. Les quatre exercices sont indépendants. À la fin
Devoir Surveillé informatique MP, PC, PSI
NOM : Classe : Devoir Surveillé informatique MP, PC, PSI L utilisation des calculatrices n est pas autorisée pour cette épreuve. Le langage de programmation choisi est Python. L espace laissé pour les
# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list =
94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue
EXAMEN FINAL. 2 Février 2006-2 heures Aucun document autorisé
MIE - E ANNÉE ALGORITHMIQUE GÉNÉRALE Vincent Mousseau EXAMEN FINAL Février 006 - heures Aucun document autorisé Exercice : On s intéresse à la gestion informatique des réservations sur l année d une salle
Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas
Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas 1. Arbres ordonnés 1.1. Arbres ordonnés (Arbres O) On considère des arbres dont les nœuds sont étiquetés sur un ensemble muni d'un
Recherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation
Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des
INF601 : Algorithme et Structure de données
Cours 2 : TDA Arbre Binaire B. Jacob IC2/LIUM 27 février 2010 Plan 1 Introuction 2 Primitives u TDA Arbin 3 Réalisations u TDA Arbin par cellules chaînées par cellules contiguës par curseurs (faux pointeurs)
Détection de la terminaison distribuée
Cours Algorithmique répartie Master 2 Université Paris-Diderot Devoir 1 (à rendre avant le 22 février 2010) Détection de la terminaison distribuée Généralités Π = {p 0,..., p n 1 } est l ensemble des processus.
Projet de Programmation Fonctionnelle
Projet de Programmation Fonctionnelle L objectif de ce projet est de concevoir, en Objective Caml, un évaluateur pour le langage mini-ml (un sous ensemble du langage Objective Caml). Votre programme devra
λ-calcul et typage Qu est-ce qu une fonction?
λ-calcul et typage Nicolas Barnier, Pascal Brisset ENAC Avril 2009 Nicolas Barnier, Pascal Brisset (ENAC) λ-calcul et typage Avril 2009 1 / 1 Qu est-ce qu une fonction? Classiquement Pas de notation uniforme/standard
( n) !n! 0. Compter les arbres binaires (1) Application des arbres binaires. Plan
pplication des arbres binaires. Plan ompter les arbres binaires Tétrarbres (quad trees) Problème des n corps Recherche dans un intervalle Recherche dans un nuage de points Recherche dans un arbre d intervalles
Langages de programmation et compilation
École Normale Supérieure Langages de programmation et compilation Jean-Christophe Filliâtre Cours 6 / 9 novembre 2015 Jean-Christophe Filliâtre Langages de programmation et compilation 2015 2016 / cours
3 Structures de données Tableaux Listes. Problème du tri. Tri rapide
Cours 2 Algorithmique IN102-02 Michel Mauny ENSTA Prénom.Nom@ensta.fr 1 Tris Retour sur fusion et quicksort Complexité minimale Efficacité 2 Récursivité 3 Structures de données Tableaux Listes Michel Mauny
Langages de spécification cours 4
Langages de spécification cours 4 Diagrammes de décision binaire(bdd) Catalin Dima Arbres de décision binaire Étant donnée une formule logique, on peut lui associer un arbre qui permet d évaluer la valeur
Informatique CM5 Synthèse :
Informatique CM5 Synthèse : 1. Tuples et enregistrements : Un enregistrement a une étiquette, des champs et des noms de champs - L étiquette et les noms des champs sont des atomes ou des entiers - L opération
1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert
1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes
LES ARBRES BINAIRES DE RECHERCHE
1 INTRODUCTION À L ALGORITHMIQUE - LES ARBRES BINAIRES DE RECHERCHE Chargée de cours: Transparents:http://www-npa.lip6.fr/~blin/Enseignements.html Email: lelia.blin@lip6.fr Arbres binaires de Recherche
Programmation générique des arbres binaires de recherche AVL et applications
Introduction Programmation générique des arbres binaires de recherche AVL et applications Ce TP porte sur l étude d une structure de données appelée arbres binaires de recherche qui sert généralement à
Programmation fonctionnelle
Programmation fonctionnelle Notes de cours Cours 4bis 15 octobre 2013 Sylvain Conchon sylvain.conchon@lri.fr Structures d arbre La structure d arbre est très utilisée en informatique, que ce soit pour
INF121: Algorithmique et Programmation Fonctionnelle
INF121: Algorithmique et Programmation Fonctionnelle Cours 1: Identificateurs, types de base et fonctions Année 2013-2014 Identificateurs La notion d identificateur Un concept fondamental dans les langages
Arbres de segments. Plan. Arbres de segments. Arbres de sélection Listes à saut Compléments de Java Dictionnaires Automates. Solution.
Plan Arbres de segments Arbres de segments Arbres de sélection Listes à saut Compléments de Java Dictionnaires Automates Problème : Chercher, dans un ensemble d intervalles de la droite réelle, les intervalles
Algorithmique et Programmation Projets 2012/2013
3 Dames 3. Objectif Il s agit d écrire un programme jouant aux Dames selon les règles. Le programme doit être le meilleur possible. Vous utiliserez pour cela l algorithme α β de recherche du meilleur coup
Listes de personnes et calculatrice polonaise inverse en Java
Listes de personnes et calculatrice polonaise inverse en Java Université Paris Sud Motivation Le but de cet exercice est de manipuler les listes chaînées et les piles et de voir leur application en analyse
9. Implantations des arbres binaires par un tableau: les monceaux (les tas) - heap en anglais.
9. Implantations des arbres binaires par un tableau: les monceaux (les tas) - heap en anglais. Définition : Un monceau (tas) est un arbre binaire complet dans lequel il existe un ordre entre un nœud et
Option Informatique Arbres Binaires de Recherche
Option Informatique Arbres Binaires de Recherche Corrigé 23 octobre 2005 1 Retour sur les arbres binaires 1.1 Tri par ABR 1. type a arbre = feuille noeud of ( a arbre) * a * ( a arbre);; 2. let rec Max
Exercices «Programmation récursive» Deuxième saison UPMC Cycle L Revision: 1.21
Exercices «Programmation récursive» Deuxième saison UPMC Cycle L Revision: 1.21 Anne Brygoo, Maryse Pelletier, Christian Queinnec, Michèle Soria Université Paris 6 Pierre et Marie Curie septembre 2005
Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte
Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes
Tri en Python. # on cherche k tel que a k = min(a j ) ji
Tri en Python On considère ici des tableaux ou listes d entiers ou de ottants. En Python, on peut trier une liste à l aide de la méthode sort : si a est une liste d entiers ou de ottants, a.sort() modi
Licence 2 SPI parcours Info semestre 4 : ALGO et SD de base Fiche de TD 1 d exercices
Licence 2 SPI parcours Info semestre 4 : ALGO et SD de base Fiche de TD 1 d exercices Exercice : Somme de polynômes creux Dans chacune des trois représentations statiques suivantes, il est demandé d écrire
EXAMEN. Durée : 2h, le seul document autorisé est une feuille A4 recto-verso manuscrite de notes personnelles
Nom : RICM3-2013/2014 Prénom : Algorithmique et Programmation Fonctionnelle EXAMEN Durée : 2h, le seul document autorisé est une feuille A4 recto-verso manuscrite de notes personnelles Cet énoncé comporte
javascript : manipuler DOM
javascript : manipuler DOM Université Lille 1 Technologies du Web javascript : manipuler DOM 1 au programme... 1 manipuler DOM Université Lille 1 Technologies du Web javascript : manipuler DOM 2 au programme...
petite référence de Caml
petite référence de Caml version du document : 2 (rentrée 1996) Alain Bèges & Laurent Chéno lycées Champollion (Grenoble) & Louis-le-Grand (Paris) Table des matières 1 Types de base 2 1.1 Unit... 2 1.2
Introduction à OCAML
Introduction à OCAML Plan L interpréteur intéractif Ocaml Les types de base, et leurs opérations : int, float, char, string, bool Les n-uplets Conditionnelles : if... then... else et match... with... Déclarations
Compression méthode de Huffman
Compression méthode de Huffman Thierry Lecroq Université de Rouen FRANCE La méthode de Huffman consiste à remplacer les caractères les plus fréquents par des codes courts et les caractères les moins fréquents
Programme. Pimp A - info121a. Exemple: Arbres d Hierarchie. Traverse et Calculs dans Arbres. Tri Récursivité Dichotomie Arbre Graphe Examen blanc
Programme Pimp A - info121a Programmation IMPérative Avancée Burkhart Wolff Frédéric Vernier Tri Récursivité Dichotomie Arbre Graphe Examen blanc Recherche linéaire Diviser pour mieux régner Traverse et
Algorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 3 : Actions, Procédures Université Lille 1 - Polytech Lille Conception Structurée Descendante Les Fonctions Les Actions / les Procédures Résumé Conception Structurée