Търсещи дървата - втора част

Многоканални търсещи дървета (Multi-Way Search Trees)

Дефиниция


Търсене в многоканално търсещо дърво

Подобно е на търсене в двоични търсещи дървета.


(2,4) дървета



Операции за промяна (Update Operations)

Вмъкване


Algorithm insertItem(k, e)
1.We search for key k to locate the insertion node v
2.We add the new item (k, e) at node v
3. while overflow(v)
        if isRoot(v)
            create a new empty root above v
        vsplit(v)

Анализ на вмъкването в (2,4) дърво

Премахване (Removal)

  1. слива се v със съседния брат/сестра w;
  2. премества се ключ от u в слетия възел v'.
  • Изпразването може да се появи по пътя към корена и отново да трябва да се приложи операция стопяване. 

    1. премества се детето на w и то става дете на v;
    2. премества се ключ от u във v;
    3. премества се ключ от w в u.
  • След тази операция няма изпразване.


  • Анализ на операция премахване в (2,4) дърво

    B-Trees - визуализация


    Червено-черни дървета




    Операции за обновяване

    Вмъкване


    • Случай 1: w е черен:
      •  Двойнo червено е неправилно представяне на 4-възел.
      • С операция реконструкция (restructuring) променяме представянето на 4-възел в  (2,4) дърво.

    • Случай 2: w е червен:
      • Двойно червено съответства на препълване.
      • Операция преоцветяване (recoloring) е еквивалентна на операция разделяне (split) на 5-възел в  (2,4) дърво.



    Анализ на операция вмъкване в червено-черно дърво Премахване (Removal)

    Реорганизация на червено-черно дърво

    Вмъкване (двойно червено)
    червено-черно дърво
    (2,4) дърво
    резултат
    реконструкция (restructuring) представяне на 4-възел
    двойно червеното изчезва
    преоцветяване (recoloring)
    разделяне (split)
    двойно червеното изчезва или се премества към корена

    Премахване (двойно черно)
    червено-черно tree action
    (2,4) tree action резултат
    реконструкция (restructuring)
    трансфер (transfer)
    двойно черното изчезва
    преоцватяване (recoloring)
    стопяване (fusion)
    двойно черното изчезва или се премества към корена
    наместване (adjustment)
    представяне на 3-възел
    следва реконструкция или преоцветяване


    Red/Black Tree - визуализация

    C++ Implementation

    html-9.11 (RBItem)
    html-9.12 (RBTree1)
    html-9.13 (RBTree2)
    html-9.14 (RBTree3)