www.wikidata.uk-ua.nina.az
Dvijkove abo Binarne derevo poshuku 1 angl binary search tree BST v informatici dvijkove derevo v yakomu kozhnij vershini x zistavlene pevne znachennya val x Pri comu taki znachennya povinni zadovolnyati umovi vporyadkovanosti 1 nehaj x dovilna vershina dvijkovogo dereva poshuku Yaksho vershina y znahoditsya v livomu pidderevi vershini x to val y val x Yaksho u znahoditsya u pravomu pidderevi x to val y val x Dvijkove derevo poshukuTip DerevoVinajdeno 1960Obchislyuvalna skladnistu zapisi velikogo OSerednya NajgirshaProstir O n O n Poshuk O log n O n Vstavlyannya O log n O n Vidalennya O log n O n Binarne derevo Take strukturuvannya dozvolyaye nadrukuvati usi znachennya u zrostayuchomu poryadku za dopomogoyu prostogo algoritmu centrovanogo obhodu dereva 1 Predstavlyayetsya take derevo vuzlami nastupnogo viglyadu Node element key left right parent Dostup do dereva T zdijsnyuyetsya za dopomogoyu posilannya root Binarni dereva poshuku nabagato efektivnishi v operaciyah poshuku anizh linijni strukturi v yakih vitrati chasu na poshuk proporcijni O n de n rozmir masivu danih todi yak v povnomu binarnomu derevi cej chas proporcijnij v serednomu O log2n abo O h de h visota dereva hocha garantuvati sho h ne perevishuye log2n mozhna lishe dlya zbalansovanih derev yaki ye efektivnishimi v algoritmah poshuku anizh prosti binarni dereva poshuku dzherelo Zmist 1 Operaciyi z dvijkovim derevom poshuku 1 1 Poshuk 1 2 Iterativna versiya proceduri Poshuk 1 3 Poshuk minimalnogo maksimalnogo elementa 1 4 Nastupnij i poperednij elementi 1 5 Dodavannya elementa 1 6 Vidalennya elementa 2 Div takozh 3 Primitki 4 DzherelaOperaciyi z dvijkovim derevom poshuku RedaguvatiNajposhirenishoyu operaciyeyu yaka vikonuyetsya z binarnim derevom poshuku ye poshuk v nomu pevnogo klyucha Krim togo binarni dereva poshuku pidtrimuyut taki zapiti yak poshuk minimalnogo i maksimalnogo elementa a takozh poperednogo i nastupnogo Poshuk Redaguvati Dlya poshuku vuzla iz zadanim klyuchem v binarnomu derevi poshuku vikoristovuyetsya nastupna procedura Tree Search yaka otrimuye yak parametri pokazhchik na korin binarnogo dereva i klyuch k a povertaye pokazhchik na vuzol z cim klyuchem yaksho takij isnuye v inshomu vipadku povertayetsya znachennya NIL Tree Search x k 1 if h nil abo k key x 2 then return h 3 if k lt key x 4 then return Tree Search left x k 5 else return Tree Search right x k Procedura poshuku pochinayetsya z korenya dereva i prohodit vniz po derevu Dlya kozhnogo vuzla h na shlyahu vniz jogo klyuch key x porivnyuyetsya z peredanim yak parametr klyuchem k Yaksho klyuchi odnakovi poshuk zavershuyetsya Yaksho k menshe key h poshuk trivaye v livomu pidderevi h yaksho bilshe to poshuk perehodit v prave pidderevo Tu zh proceduru mozhna zapisati iterativno rozgortayuchi rekursiyu v cikl while Iterativna versiya proceduri Poshuk Redaguvati Iterative Tree Search x k 1 while x NIL i k key h 2 do if k key h 3 then h left x 4 else h right x 5 return xPoshuk minimalnogo maksimalnogo elementa Redaguvati Algoritm poshuku minimalnogo elementa Element z minimalnim znachennyam klyucha legko znajti sliduyuchi za vkazivnikami left vid korenevogo vuzla do tih pir poki ne zustrinetsya znachennya NIL Procedura TREE MINIMUM x povertaye pokazhchik na znajdenij element piddereva z korenem x TREE MINIMUM X 1 while left x NIL 2 do x left x 3 return xAlgoritm poshuku maksimalnogo elementa simetrichnij TREE MAXIMUM X 1 while right x NIL 2 do x right x 3 return xObidva algoritmi vimagayut chasu O h de h visota dereva Nastupnij i poperednij elementi Redaguvati Yaksho x pokazhchik na deyakij vuzol dereva to procedura TREE SUCCESSOR X povertaye pokazhchik na vuzol z nastupnim za x elementom abo nil yaksho zaznachenij element ostannij v derevi TREE SUCCESSOR X 1 if right x NIL 2 then return TREE MINIMUM right x 3 u p x 4 while y NIL ta x right y 5 do x u 6 u p y 7 return uNavedena procedura okremo rozglyadaye dva vipadki Yaksho prave pidderevo vershini ne puste to nastupnij za x element ye krajnim livim vuzlom u pravomu pidderevi yakij viyavlyayetsya proceduroyu TREE MlNlMUM right x Z inshogo boku yaksho prave pidderevo vuzla x puste ta u x isnuye nastupnij za nim element y to y ye najmenshim predkom x chij livij vuzol takozh ye predkom x Dlya togo shob znajti y mi prosto pidnimayemosya vgoru po derevu do tih pir poki ne zustrinemo vuzol yakij ye livim dochirnim vuzlom svogo batka Cya diya vikonuyetsya v ryadkah 3 7 algoritmu Chas roboti algoritmu TREE SUCCESSOR v derevi zavvishki h skladaye O h oskilki mi abo ruhayemosya po shlyahu vniz vid vihidnogo vuzla abo po shlyahu nagoru Procedura poshuku podalshogo vuzla v derevi TREE PREDECESSOR simetrichna proceduri TREE SUCCESSOR i takozh maye chas roboti O h Yaksho v derevi ye vuzli z odnakovimi klyuchami mi mozhemo prosto viznachiti nastupnij i poperednij vuzli yak ti sho povertayutsya procedurami TREE SUCCESSOR ta TREE PREDECESSOR vidpovidno Dodavannya elementa Redaguvati Dlya vstavki novogo znachennya v v binarne derevo poshuku T mi skoristayemosya proceduroyu TREE INSERT Procedura otrimuye yak parametr vuzol z u yakogo key z v left z NIL i right z NIL pislya chogo vona takim chinom zminyuye T i deyaki polya z sho z viyavlyayetsya vstavlenim v vidpovidnu poziciyu v derevi TREE INSERT T Z 1 u NIL 2 h root T 3 while x NIL 4 do u x 5 if key z lt key x 6 then x left x 7 else x right x 8 p z u 9 if u NIL 10 then root T z Derevo T puste 11 else if key z lt key y 12 then left y z 13 else right u zVidalennya elementa Redaguvati Procedura vidalennya danogo vuzla z z binarnogo dereva poshuku otrimuye yak argument pokazhchik na z Procedura rozglyadaye tri mozhlivi situaciyi Yaksho u vuzla z nemaye dochirnih vuzliv to mi prosto zminyuyemo jogo batkivskij vuzol r z zaminyuyuchi v nomu pokazhchik na z znachennyam NIL Yaksho u vuzla z lishe odin dochirnij vuzol to mi vidalyayemo vuzol z stvoryuyuchi novij zv yazok mizh batkivskim i dochirnim vuzlom vuzla z Yaksho u vuzla z dva dochirnih vuzla to mi znahodimo nastupnij za nim vuzol u u yakogo nemaye livogo dochirnogo vuzla pribirayemo jogo z poziciyi de vin perebuvav ranishe shlyahom stvorennya novogo zv yazku mizh jogo batkom i nashadkom i zaminyuyemo nim vuzol Z DELETE T z 1 if left z NULL or right z NULL 2 then y z 3 else y SUCCESSOR z 4 if left y lt gt NULL 5 then x left y 6 else x right y 7 if x lt gt NULL 8 then p x p y 9 if p y NULL 10 then root T x 11 else if y left p y 12 then left p y x 13 else right p y x 14 if y lt gt z 15 then val z val y 16 kopiyuvannya dodatkovih danih z y 17 return y Chas na vikonannya ciyeyi proceduri ye takozh O h Div takozh RedaguvatiU Vikidzherelah ye prikladi realizacij algoritmiv roboti z binarnimi derevami poshuku nbsp VikiPidruchnik VikiPidruchnik Mova programuvannya Lisp maye dani stosovno Dereva Zbalansovane derevo AVL derevo B derevo Chervono chorne derevo Spisok struktur danih Sortuvannya dvijkovim derevomPrimitki Redaguvati a b v Kormen Tomas Lejzerson Charlz Rivest Ronald Stajn Kliford 2019 Rozdil 12 Dvijkovi dereva poshuku Vstup do algoritmiv vid 3 K I S s 301 322 ISBN 978 617 684 239 2 Dzherela RedaguvatiTomas Kormen Charlz Lejzerson Ronald Rivest Vstup do algoritmiv MIT Press i McGraw Hill Iskusstvo programmirovanie Sortirovka i poisk Donald Knut ros Otrimano z https uk wikipedia org w index php title Dvijkove derevo poshuku amp oldid 32402904