Azt kaptak két bináris keresési fák. Például, az A és B Ezután megkértek, hogy törölje a fa B a fáról A.
By törlés, mármint törölje az összes csomók B A. Megjegyzés: B nem feltétlenül részfáját A.
pl:
A:
50 / \ 10 75 / / \ 1 60 90
B:
10 / \ 1 75
Kapott fát kell:
50 \ 60 \ 90
Két megközelítés jutott eszembe:
A1:
node * deleteTree (node * A csomópont * B);
Vegyük a gyökere fa B. törlése csomópont fáról A (normál BSt törlés módszer). Következő osztani a problémát két részre - a bal részfa a B és a jobb részfa B. Az egyes részfa, recurse. A bal oldali részfa, a csomópont, amely elfoglalta a csomópont, amelyet törölni kell szolgálnia a gyökér a fa A. A jobb oldali részfa, a inorder utódja a törölt csomópont kell szervert root fák A.
A2: A másik megközelítés egy kicsit furcsa. Találom a inorder és előrendelésre bejárása fa A. Keresse meg és törölje az összes csomópont fa B bináris kereséssel együtt rekurzió (mi dont módosítani a előrendelésre). Végül recostruct a BST a inorder (maradék), és az előrendelési (változatlan).
PROB A: Find egy hatékony módja a BST.
Prob B: talál egy hatékony módon bármilyen bináris fa (nem csak BST).













