1 / 13

Лекция 8 Красно-черные деревья

Лекция 8 Красно-черные деревья. План лекции Определение красно-черного дерева и его высота. Вращения Вставка элемента, восстановление структуры дерева Удаление элемента, процедура RB_Delete_Fixup. Красно-черные деревья.

tasha-adams
Download Presentation

Лекция 8 Красно-черные деревья

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Лекция 8Красно-черные деревья План лекции • Определение красно-черного дерева и его высота. • Вращения • Вставка элемента, восстановление структуры дерева • Удаление элемента, процедура RB_Delete_Fixup.

  2. Красно-черные деревья • Красно-черное дерево –это двоичное дерево поиска, вершины которого разделены на красные и черные. Двоичное дерево поиска называется красно-чернымдеревом, если оно обладает следующими свойствами: • Каждая вершина – либо черная, либо красная. • Корень дерева является черным • Каждый лист (NIL) – черный. • Если вершина красная, оба ее ребенка черные. • Все пути, идущие вниз от корня к листьям, содержат одинаковое количество черных вершин.

  3. Красно-черное дерево

  4. Высота красно-черного дерева • Красно-черное дерево с n внутренними вершинами (т.е. не считая NIL-листьев) имеет высоту не больше 2*log(n+1) • Поддерево с корнем в x содержит по меньшей мере 2bh(x) – 1 внутренних вершин (bh(x) – черная высота вершины x). Для листьев черная высота равна 0. Если вершина не является листом и имеет черную высоту k, то оба ее ребенка имеют черную высоту не меньше k-1. По предположению индукции левое и правое поддеревья вершины x содержат не менее 2k-11вершин, поэтому поддерево с корнем в x содержит по меньшей мере 2k-1-1 + 2k-1-1 +1= 2k-1 внутренних вершин. Черная высота дерева не меньше h/2.Тогда n>= 2h/2-1. Ч.т.д.

  5. Вращения

  6. Вращения

  7. Добавление вершины

  8. Добавление вершины(2)

  9. Добавление вершины (3)

  10. Добавление вершины (4)

  11. RB-DELETE (T, z) 1 if left[z] = nil[T] or right[z] = nil[T] 2 then y = z 3 else y = TREE-SUCCESSOR(z) 4 if left[y] != nil[T] 5 then x = left[y] 6 else x = right[y] 7 p[x] = p[y] 8 if p[y] = nil[T] 9 then root[T] = x 10 else ify = left[p[y]] 11 thenleft[p[y]] = x 12 elseright[p[y]] = x 13 ify != z 14 thenkey[z] = key[y] 15 If y has other fields, copy them, too. 16 ifcolor[y] = BLACK 17 then RB-DELETE-FIXUP (T,x) 18 returny Удаление

  12. Удаление (2)

  13. Удаление (3)

More Related