Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Przeglądanie inOrder function BSTinorder(BSTNode root) if root NOT NULL BSTinorder(root.left) Print(root) BSTinorder(root.right) 2, 4, 6, 8, 9, 10, 12,

Podobne prezentacje


Prezentacja na temat: "Przeglądanie inOrder function BSTinorder(BSTNode root) if root NOT NULL BSTinorder(root.left) Print(root) BSTinorder(root.right) 2, 4, 6, 8, 9, 10, 12,"— Zapis prezentacji:

1 Przeglądanie inOrder function BSTinorder(BSTNode root) if root NOT NULL BSTinorder(root.left) Print(root) BSTinorder(root.right) 2, 4, 6, 8, 9, 10, 12, 15

2 Przeglądanie preOrder function BSTpreorder(BSTNode root) if root NOT NULL Print(root) BSTpreorder(root.left) BSTpreorder(root.right) 8, 4, 2, 6, 10, 9, 12, 15

3 Przeglądanie postOrder function BSTpostorder(BSTNode root) if root NOT NULL BSTpostorder(root.left) BSTpostorder(root.right) Print(root) 2, 6, 4, 9, 15, 12, 10, 8

4 Poprzednik Poprzednikiem węzła x na drzewie BST będziemy nazywali węzeł, którego wartość jest bezpośrednio mniejsza od wartości węzła x. To znaczy, że w drzewie nie występują węzły o wartościach z przedziału a) x 1 posiada lewego potomka, to poprzednikiem będzie węzeł o największym kluczu w lewym poddrzewie x 1 x1x1 predecessor(x 1 ) b) x 2 nie posiada lewego potomka, to poprzednikiem będzie pierwszy rodzic dla którego x 2 leży w prawym poddrzewie x2x2 predecessor(x 2 ) c) Dla węzła x 3 przypadki a i b nie są spełnione. Węzeł nie ma poprzednika. Dlaczego? x3x3

5 Następnik Następnikiem węzła x w drzewie BST będziemy nazywali węzeł, którego wartość jest bezpośrednio większa od wartości węzła x. To znaczy, że w drzewie nie występują węzły o wartościach z przedziału a) x 1 posiada prawego potomka, to poprzednikiem będzie węzeł o najmniejszym kluczu w prawym poddrzewie x 1 x1x1 successor(x 1 ) b) x 2 nie posiada prawego potomka, to poprzednikiem będzie pierwszy rodzic dla którego x 2 leży w lewym poddrzewie c) Dla węzła x 3 przypadki a i b nie są spełnione. Węzeł nie ma następnika. Dlaczego? x2x2 successor(x 2 ) x3x3

6 Usuwanie węzłów A) Węzeł nie posiada dzieci – po prostu usuwamy węzeł

7 Usuwanie węzłów B) Węzeł posiada tylko lewego lub tylko prawego potomka - usuwany węzeł zastępujemy potomkiem

8 Usuwanie węzłów C) Węzeł ma obu potomków - zastępujemy losowo raz przez jego poprzednikiem, a raz przez jego następnikiem Zamiana z poprzednikiem Zamiana z następnikiem

9 Usuwanie węzłów Jak usunąć całe drzewo?


Pobierz ppt "Przeglądanie inOrder function BSTinorder(BSTNode root) if root NOT NULL BSTinorder(root.left) Print(root) BSTinorder(root.right) 2, 4, 6, 8, 9, 10, 12,"

Podobne prezentacje


Reklamy Google