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;