Page 47 - 6110
P. 47

Рисунок 11.3 – Реалізація бінарного дерева з використанням
                                                       вказівників

                                Модифікована  реалізація  бінарного  дерева.  Кожна  вершина
                            містить також вказівник на батьківську вершину
                                Також  іноді  додається  вказівник  p[x]  на  батьківську  вершину.
                            Це  виявляється  корисним,  коли  необхідний  швидкий  доступ  до
                            батьківської вершини, що спрощує деякі алгоритми. Іноді достатньо
                            тільки  вказівника  на  батьківську  вершину.  Взагалі  будь-яке
                            орієнтоване дерево можна описати, знаючи тільки зв'язки від дітей
                            до  батьківської  вершини.  Деякі  різновиди  бінарних  дерев
                            (наприклад,  червоно-чорні  дерева  або  AVL-дерева),  вимагають
                            збереження  в  вершинах  і  деякої  додаткової  інформації.  Якщо  у
                            вершини  відсутня  одна  чи  обидві  дитини,  відповідні  вказівники
                            ініціалізуються спеціальними “порожніми” значеннями.
                                Бінарні дерева також можуть бути побудовані на базі масивів
                            (рис.11.4).  Такий  метод  набагато  ефективніший  щодо  економії
                            пам'яті.  В  такому  представленні,  якщо  вершина  має  порядковий
                            номер  i,  то  її  діти  знаходяться  за  індексами  2i+1  та  2i+2,  а
                            батьківська  вершина  за  індексом  ((i-1)/2)  (за  умов,  що  коренева
                            вершина має індекс 0).









                                   Рисунок 11.4 – Бінарні дерево побудоване на базі масиву
                                                            46
   42   43   44   45   46   47   48   49   50   51   52