Chapre 4 Les arbres gééraux. Iroduco U arbre es ue colleco o vde de oeud e d'arêes posséda ceraes propréés. U oeud es u obje smple. Ue arêe es u le ere deux oeuds. Ue brache de l'arbre es ue sue de oeuds dscs das laquelle deux oeuds successfs so relés par ue arêe. Il exse u oeud spécal appelé race. La propréé qu déf u arbre es qu'l exse exaceme ue brache ere la race e chacu des aures oeuds de l'arbre. Il es habuel de représeer les arbres avec la race suée au dessus de ou les aures oeuds. Chaque oeud, excepé la race, possède u oeud "au dessus de lu", appelé père. Les oeuds dreceme sués sous u oeud so appelés efas. O peu auss parler de frère, grad-père, ec. Les oeuds 'aya pas de descedace so appelés feulles ou oeuds ermaux ou oeud exeres, par opposo aux œuds qu o ue descedace appelés œuds eres FIG. Ue arborescece. Elle es composée d ue race, le œud a, e de ros sous arboresceces arbres de races b, c e d. Les arcs so mplceme oreés du hau vers le bas. Les efas du œud g so les œuds j, k l, m e. Le père du œud j es le œud g. Les feulles de cee arborescece so les œuds h,, f, c, j, o, p, q, l, m,. Les acêres de k so k, g, d e a. Les descedas de b so b, e, f, h e. Les haueurs respecves des œuds b, c, d so, 0, 3. La haueur de l arborescece es 4.
. Termologe La race de l arborescece es le seul œud sas père. Tous les arcs so oreés de la race vers les feulles. Ue séquece de œuds para d u œud a e suva des arcs selo leur oreao jusqu à u œud b s appelle u chem de a à b. La logueur d u chem es le ombre d arcs sur le chem. Il exse exaceme u chem de la race vers chacu des œuds. La profodeur d u somme v es la logueur du chem qu va de la race à ce somme, o écr profv Le veau p es formée des sommes de profodeur p. La haueur d u arbre es u de plus que la logueur du plus log chem de la race à ue feulle. U arbre vde es de haueur 0. Arbre comple: U arbre es comple s oues ses feulles so sur le même veau. Arbre parfa: U arbre es parfa s ou ses veaux so rempls sauf éveuelleme le derer veau qu a oues ses feulles rameées complèeme à gauche.
Arbre localeme comple: U arbre es localeme comple s ou ces oeuds o aucu ou efas. 3. Usages des arbres Ils so mulples, car ls capure l dée de hérarche. Par exemple: - découpage d u lvre e pares, chapres, secos, paragraphes..., - hérarches de fchers, - expressos arhméques - compresso de doées code Huffma - décomposo syaxque - r - ec 4. Opéraos usuelles sur u arbre. cosrure u arbre. sérer u éléme 3. supprmer u éléme 4. rerouver u éléme 5. l efa le plus à gauche d u œud 6. le frère/sœur mméda d u œud 7. le pare d u œud 8. la race de l arbre 4. Implémeao d'u arbre Pour les arbres bares, les deux efas sero représeés par les champs efasg, efasd e l sera plus smple de supposer qu'ue feulle es u oeud do les efas gauche e dro o ue valeur vde. class Arbre { coeu; Arbre efasg; Arbre efasd; Arbre v, Arbre a, Arbre b { coeu v; efasg a; efasd b; Pour les arbres quelcoques, o peu gager plus d'espace mémore e cosdéra des eregsremes varables. Touefos, e Pascal, l y a ue dffculé de ypage à cosdérer des oeuds -ares aya efas. O do cosdérer des ypes dfféres pour les oeuds bares, 3
erares,... ou u ggaesque eregsreme avec varae. Deux soluos sysémaques so auss possbles: la premère cosse à cosdérer le cas maxmum comme pour les arbres bares class Arbre { coeu; Arbre[] efas; Arbre v, { coeu v; efas ew Arbre[]; la deuxème cosse à echaîer les efas das ue lse class Arbre { coeu; LseArbres efas; class LseArbres { Arbre coeu; LseArbres suva; La rosème représeao e c es la plus souple es smlare à la premère seuleme l erpréao des poeurs es dfféree. As, u poeur va poer vers l efa le plus à gauche e le secod poeur va désger l adresse du frère/sœur le plus mméda. 5. Parcours das les arbres Il exse pluseurs procédés de vser d ue maère sysémaque les oeuds d u arbre. Les plus ulsés so le parcours fxe, prefxe e posfxe défs comme su : S u arbre T es vde, alors la lse de parcours es vde e fxe, posfxe e prefxe. S T e coe qu u seul oeud alors ce oeud es lsé e prefxe, fxe e posfxe So,T possède ue race e des sous- arbres T, T,..., T k, comme llusré c-dessous. 4
N... T T T3 Tk. Le lsg e prefxe des oeuds de T es la race de T suv par les oeuds de T e prefxe, pus les oeuds de T e prefxe, as de sue jusqu aux œuds de T k e prefxe.. Le lsg e fxe des oeuds de T es les oueds de T, la race de T suve par les oeuds de T e fxe, as de sue jusqu aux œuds de T k e fxe. 3. Le lsg e pos des oeuds de T es les oeuds de T e posfxe, les oeuds de T e posfxe, as de sue jusqu aux œuds de T k e posfxe, suv par la race. procedure PREFIXE : ode { raer ; for chaque efa c de, à parr de la gauche do PREFIXEc a La procédure PREFIXE. procedure INFIXE : ode { f es ue feulle raer ; else { INFIXElefmos chld of ; ls ; for chaque efa c of, sau celu le plus à gauche do INFIXEc b La procédure INFIXE. 5
procedure POSTFIXE : ode { for chaque efa c de, à parr de la gauche do PPSTFIXE c ; raer ; c La procédure POSTFIXE Exemple : Repreos l arbre de la fgure. Le parcours des œuds es comme su : Ifxe : h e b f a c d j g o k p q l m Prefxe : a b e h f c d g j k o p q l m Posfxe : h e f b c j o p q k l m g d a Exercce : e ulsa la représeao du poeur vers l efa le plus à gauche e de celu vers le frère/sœur le plus mméda, écrre d ue maère plus formelle les focos de parcours e C- C. 6. Les arbres bares Les arbres bares so ue resrco des arbres gééraux. Au leu de comporer u ombre déermé de efas, o fxe ue lme de efas par oeud: u efas gauche e u efas dro. O modélse e C u oeud d'arbre bare par: sruc bary_ode { vod * doee; sruc bary_ode *efas_gauche; sruc bary_ode *efas_dro; ; 6.. Coverso d u arbre gééral e u arbre bare Remarquez que l mplaao efa gauche - frère dro esseelleme socke u arbre bare. Pour coverr d ue maère méhodque u arbre gééral e u arbre bare, o procède comme su. Pour chaque œud de l arbre. Lasser l efa gauche comme el. Supprmer les aures efas de ce œud e les chaîer à l efa gauche Exemple : u esemble d arbres gééraux covers e u arbre bare 6
6.. Quelques propréés Lemme le ombre maxmum de oeuds au veau d u arbre bare es -, > e le ombre maxmum de oeuds d u arbre bare de haueur k es k -, k>. Preuve: elle es par duco sur. Iduco de base: la race es le seul oeud au veau. Par coséque, le ombre 0 maxmum de oeud au veau es -. Hypohèse d duco: pour ou j, <j <, le ombre maxmum de oeuds au veau j es j -. Éape d duco: le ombre maxmum de oeuds au veau - s -, par l hypohèse d duco. Comme chaque œud das u arbre bare possède au maxmum descedas, le ombre maxmum de oeuds au veau es fos le ombre maxmum du veau, c es-àdre -. le ombre maxmum de oeuds das u arbre bare de haueur k es la somme sur de ombre maxmum de oeuds au veau 4. k- k -. Exercce : Écrre les focos de parcours fxe, préfxe e posfxe. 6.3. Arbres bares de recherche C'es fodamealeme u arbre bare qu obé à ue règle suvae: Le sous arbre gauche e coe que des valeurs féreures ou égales à la clé courae. Celu de droe coe de valeur supéreurs à la clé courae. 7
Noe : U parcours fxe d'u arbre bare de recherche perme de raer les clés de la plus pee à la plus grade pour u parcours fxe ma gauche, ou de la plus grade à la plus pee pour u parcours fxe ma droe. 6.. Les opéraos de base e leur algorhme Recherche d u éléme Ue procédure de recherche semblable à la recherche dchoomque sur u ableau s'mpose aurelleme pour cee srucure. Parce que l arbre possède la propréé d u arbre de recherche, la maère d y rechercher u éléme es comme su:. commecer à la race. s la valeur de ce oeud es l éléme recherché, sop 3. s la valeur du oeud coura es plus grade que la valeur recherchée, alors couer la recherche das la pare gauche de l arbre. 4. s la valeur du oeud coura es plus pee que la valeur recherchée, alors couer la recherche das la pare droe de l arbre. Cela ous codu à l algorhme suva oeud * rechercher oeud * race, daa{ oeud *p; rouve; p race; rouve 0 whle p! NULL &&!rouve f p->valeur daa rouve ; else f p->gauche > daa p p->gauche; else p p->dro; f rouve prf éléme rouvé ; else prféléme exsa ; reurp 8
Isero d u éléme: La procédure d'adjoco das u arbre bare es smlare à celle de recherche. Lors de la descee, des qu'o rouve u arbre vde alors c'es la place de la ouvelle clé. L algorhme es comme su : oeud *sereroeud *race, daa{ oeud *p, *q; f race NULL{/* arbre vde*/ race oeud * mallocszeof oeud; race->valeur daa; race->dro NULLl; race->gauche NULL; reurrace; p race; whle p! NULL{ /* rouver l emplaceme pour l sero */ q p; /* sauvegarder le pare ava d aller vers les efas */ f daa < p->valeur p p->gauche; /* aller vers les efas de gauche */ else p p ->dro; /* aller les efas de droe */ p oeud * mallocszeof oeud; p ->valeur daa; f daa < q->valeur q->gauche p;/* reler le pare référecé par q au ouvel éléme comme efa gauche*/ else q->droe p; /* reler le pare référecé par q au ouvel éléme comme efa dro */ reurp; Exemple : 9
Exercce : à parr de cee foco d sero, écrre u programme qu crée u arbre bare de recherche de élémes. Suppresso d u éléme doé: Dés que la clé à supprmer es rouvée, alors s le oeud es : o u oeud ermal: o le supprme. o u oeud smple: o le remplace par so efas. o u oeud double: o le remplace par le plus grad oeud du sous arbre gauche. T Pas de sous arbre Pas de sous arbre dro Pas de sous arbre gauche T ull T T->gauche T T->dro processus echage T 0
Processus d échage œud *echagerœud T, oeud * P{ f T->droe! ull echagert->droe, P; else /* le maxmum es rouvé au œud race */ { /* échager les coeus de P e race */ P->valeur T->valeur; T T->gauche; P T; /* f de la foco */ oeud * supprmeroeud race, daa{ oeud * T, emp ; T rechercherrace, daa; emp T; f T->dro ull T T->gauche; else f T->gauche ull T T->dro ; else echagert->gauche, T; freet; Exercce: Écrre la foco de suppresso où u œud es remplacé par le mmum de l arbre dro de ce éléme. 6.3.. Calcul de complexés Le plus mauvas cas se présee quad ous chaque oeud e possède qu u seul efa gauche ou droe. Cela sgfe que l arbre es rédu à ue chaîe léare. Das ce cas de fgure, s représee le ombre de œuds das l arbre, alors la complexé d sérer ou de rechercher u éléme es e O. Le calcul de la complexé das le cas moye se fa comme su. Remarquos d abord qu avec u esemble de doées { a, a,..., a, dfféres arbre de recherche peuve êre cosru. Cela déped de l ordre das lequel ces élémes so sérés das l arbre. Par alleurs, l es clar que la complexé de recherche ou d sero déped du ombre de œuds exsa ere la race e l edro désré.
So doc le ombre moye de œud sur u chem quelcoque de l arbre. So auss { a, a,..., a la séquece de œuds aya formée l arbre e queso. O suppose comme à l accouumée que la probablé que a so la race de ce arbre es /. So doc a la race de ce arbre. Le sous-arbre gauche de cee race va coer - œuds e celu de droe - œuds, comme llusré c-dessous.. a Sous-arbre gauche Sous-arbre dro Pour cee suao, ous avos la relao de récurrece suvae. Il es ule de savor que, pour éablr cee équao, l suff de sommer oues les logueurs de chems de l arbre e de dvser par. E procéda de la sore, o remarque que les œuds du sous-arbre gauche so compés - fos, ceux de droe - fos e la race fos. Comme l dce peu predre l ue des valeurs de à, la complexé das le cas moye deve alors : D après la défo de, l es facle de dédure que. E remarqua que, e après quelques smplfcaos smples, o arrve à l équao suvae : ou be
3 Cee équao es auss vrae pour E sousraya de, o obe : Ou alors, e revea à, qu peu auss s écrre comme su : E développa cee équao, ous arrvos à : Pour évaluer cee expresso, ous avos beso des formao suvaes :.. O log 3. 6 π Après quelques smples mapulaos algébrques, o arrve au résula fal suva : log O Les arbres bares de recherche so parculèreme be adapés pour u esemble d'éléme aléaore. Par core lors d'ue adjoco d'ue esemble de clés à valeur classées ex: {,4,5,7,8,9, o se rerouve das u cas où l'arbre se dégéère.
Défo: U arbre dégéère es u arbre do ou ses oeuds o chacu u seul efa. La haueur d'u arbre comple es e Olog, ads que la haueur d'u arbre dégééré es e O. Das le cas moye, les algorhmes de recherche, sero e suppresso fo Olog comparasos, alors que das le pre des cas ls e fo O. As, o a ou érê à garder l'arbre comple. Doc ous meros e place das ce qu su le cocep d'équlbrage qu ous permera de garder ue complexé e Olog : Les arbres AVL e les B-arbres. Sources e référeces :. C.A. Shaffer 00: A praccal roduco o daa srucures ad algorhm aalyss, Prece Hall.. T.H. Corme e al. 990: Algorhms, MacGraw Hll. 3. Rober Tarja: Noes de cours sur advaced algorhms desg, Prceo Uevrsy. 4. Joh Morrs 998: Daa srucures ad algorhms, Uversy of weser Aurala. 5. L.B. Holder 999: oes de cours sur algorhms ad daa srucures, Uversy of Texas a Arlgo 4