Algorytmy i programowanie Drzewa

Transkrypt

Algorytmy i programowanie Drzewa
Algorytmy i programowanie
Drzewa - algorytmy
Drzewo binarne
Drzewo binarne składa się z elementów, z których każdy posiada atrybuty: key, left, right, gdzie
left i right wskazyją na lewego i prawego syna odpowiednio. Drzewo reprezentowane jest przez obiekt
z atrybutem root.
Drzewo BST (Binary Search Tree)
Jest to drzewo binarne z dodatkową własnością, że dla każdego jego węzła x spełnione są nierówności:
key [left [x]] ¬ key [x] oraz key [x] ¬ key [right [x]]
1. Napisać w pseudokodzie procedurę iteracyjną wypisującą węzły drzewa binarnego w kolejności:
a) preorder,
b) inorder,
c) postorder.
2. Napisać w pseudokodzie następujące funkcje:
a) TreeMinimum (x) - zwracająca węzeł o najmniejszym kluczu,
b) TreeMaximum (x) - zwracająca węzeł o największym kluczu,
c) TreeSearch (x, key) - zwracająca węzeł o zadanym kluczu, a jeśli takiego elementu nie ma
NIL,
d) TreeSuccessor (x) - następnik węzła x w drzewie,
e) TreePredecessor (x) - poprzednik węzła x w drzewie.
3. Szukamy w drzewie BST, w którym znajdują się liczy 1, . . . , 1000, liczbę 363. Które z poniższych
ciągów węzłów nie mogą zostać sprawdzone w procedurze TreeSearch :
a) 2, 252, 401, 398, 330, 344, 397, 363;
b) 924, 220, 911, 244, 898, 258, 362, 363;
c) 925, 202, 911, 240, 912, 245, 363;
d) 2, 399, 387, 219, 266, 382, 381, 278, 363;
e) 935, 278, 347, 621, 299, 392, 358, 363;