jak implementovat BST nezbytného průchod?

hlasů
0

Ve skutečnosti to, co chci vědět, je to, jak implementovat algoritmus traversal na zakázku pro BST, ale aby jej pouze pomocí vložení, vymazání a křížovou kontrolu algoritmy pre-order na BST.
Můžete předpokládat, že jste vzhledem k implementaci pro standardní BST algoritmů pro vložení, vymazání a pre-objednávat traversal.

Položena 18/10/2011 v 06:36
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
0

Hmmm ... Řekněme, že máme + u kořene a 1 v levé uzlu a 2 v pravém uzlu. Pre-order bude + 1 2a aby se 1 + 2.. Rozdíl je, že první a druhý byly zaměněny, takže pokud máte vkládání a mazání můžete rekurzivně vyměnit jednotlivé hodnoty kořen s jejím levém hodnotou uzlu a pak pomocí předobjednávku procházet strom, který se vrátí způsobí nezbytného traversal.

Nejsem si jistý, jestli je to způsob, jak jít, ale doufám, že to pomůže.

Odpovězeno 18/10/2011 v 06:46
zdroj uživatelem

hlasů
0

Myslím, že jsem našel řešení. :)

máme předem objednávat traversal, vkládání a mazání metody.

Předpokládejme, že jsme vzhledem k BST.

co děláme, je, zajišťujeme traversal metoda pre-order s daným BST. od pre-order traversal vždy jít do nadřazeného uzlu Nejprve jsme odstranit a vložit každý kořen (protože kořen je první mateřský podnik se setkáme) uzel rekurzivně, dokud levý dílčí strom kořene je null.

Nyní začnete odstraněním kořen, dokud tam žádné uzly left.Put těch odstraněných uzlin v poli nebo kamkoli budete chtít. Získáte seřazený množinu uzlů. (Tj uzly budou odstraněny v tříděném order.the nejmenší první a tak dále ...)

Odpovězeno 21/10/2011 v 07:54
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more