Ежедневные навыки последипломного образования по структуре данных: применение бинарных деревьев (1)

задняя часть структура данных
Ежедневные навыки последипломного образования по структуре данных: применение бинарных деревьев (1)

Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность

Применение бинарного дерева

image.png

[Концепция] Двоичное дерево сортировки

Также известное как двоичное дерево поиска (BST, Binary Search Tree). Двоичное дерево — это либо пустое двоичное дерево, либо двоичное дерево со следующими свойствами: Ключевые слова всех узлов в левом поддереве меньше, чем ключевые слова корневого узла. ; Ключи всех узлов в правом поддереве больше, чем ключи корневого узла. Левое поддерево и правое поддерево представляют собой бинарное отсортированное дерево.

image.png

[Концепция] Поиск по двоичному сортировочному дереву

Значение узла левого поддерева

image.png

image.png

[Концепция] Вставка двоичного дерева сортировки

Если исходное двоичное дерево сортировки пусто, вставьте узел напрямую; В противном случае, если ключевое слово k меньше значения корневого узла, оно вставляется в левое поддерево, а если ключевое слово k больше значения корневого узла, оно вставляется в правое поддерево.

image.png

[Концепция] Построение бинарного дерева сортировки

Построить BST в соответствии с последовательностью str={45, 24, 53,12}

Построить BST в соответствии с последовательностью str={24, 45, 12,53}

image.png

Последовательность другая, построение бинарного дерева другое

[Концепция] Удаление дерева двоичной сортировки

Дело 1

Первый поиск, чтобы найти целевой узел: ① Если удаленный узел z является конечным узлом, удалите его напрямую, не разрушая свойства бинарного дерева сортировки.

image.png

Случай 2

Первый поиск, чтобы найти целевой узел:

① Если удаленный узел z является конечным узлом, удалите его напрямую, не разрушая свойства бинарного дерева сортировки. ② Если узел z имеет только одно левое или правое поддерево, пусть поддерево узла z станет поддеревом родительского узла узла z, заменив положение узла z.

image.png

Случай 3

Первый поиск, чтобы найти целевой узел: ① Если удаленный узел z является конечным узлом, удалите его напрямую, не разрушая свойства бинарного дерева сортировки. ② Если узел z имеет только одно левое или правое поддерево, пусть поддерево узла z станет поддеревом родительского узла узла z, заменив положение узла z. ③ Если узел z имеет левое и правое поддеревья, пусть прямой преемник (или прямой предшественник) z заменит z, а затем удалите этого прямого преемника (или прямого предшественника) из бинарного дерева сортировки, чтобы он был преобразован в первое или второе кейс.

image.png