napredni vidovi drva
TRANSCRIPT
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Напредни видови дрва〈 BST, AVL, B—, Red/Black 〉
Васил Танески
Институт за информатикаПриродно – математички факултeт
18.12.2007 / ПРК
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Преглед
1 Бинарни дрваВидови и дефиницииРотирање на бинарни дрва
2 AVL дрваДефинициjаОперации со AVL дрва
3 B— ДрваДефиницииОперации со B— дрва
4 Red/Black дрваДефиницииОперации со Црвено/Црно дрва
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Преглед
1 Бинарни дрваВидови и дефиницииРотирање на бинарни дрва
2 AVL дрваДефинициjаОперации со AVL дрва
3 B— ДрваДефиницииОперации со B— дрва
4 Red/Black дрваДефиницииОперации со Црвено/Црно дрва
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Бинарно дрво
Дрво со наjмногу две деца.
• Вистинско бинарно дрво• Комплетно бинарно дрво• Дегенерирано бинарно дрво• Балансирано бинарно дрво
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Комплетно бинарно дрво
def.Комплетно бинарно дрво е дрво со n нивоа, каде во секоениво d ≤ n− 1 има точно 2d jазли и jазлите во n–тото нивосе пополнети од лева страна.
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Комплетно бинарно дрвослика
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Дегенерирано бинарно дрво
def.Дегенерирано бинарно дрво е дрво каде секоj jазол–татко етатко на само едно дете.
Ова бинарно дрво се однесува како листа
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Дегенерирано бинарно дрвослика 1
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Дегенерирано бинарно дрвослика 2
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Балансирано бинарно дрво
def.Балансирано бинарно дрво е дрво во кое разликата мегубило кои два листа е 1.
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Балансирано бинарно дрвослика
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Преглед
1 Бинарни дрваВидови и дефиницииРотирање на бинарни дрва
2 AVL дрваДефинициjаОперации со AVL дрва
3 B— ДрваДефиницииОперации со B— дрва
4 Red/Black дрваДефиницииОперации со Црвено/Црно дрва
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Ротирање на бинарни дрвадефинициjа
Операциjа при коjа се менува структурата на бинарнотодрво, но не и inorder редоследот.
• Единечна ротациjа- Лева ротациjа- Десна ротациjа
• Двоjа ротациjа- Лева/десна ротациjа- Десна/лев ротациjа
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Ротирање на бинарно дрвослика
Истото бинарно дрво од сликата 1 на Дегенерирани б.д.
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Примери и вежби
http://bach.taneski.com/applet/rot/
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Преглед
1 Бинарни дрваВидови и дефиницииРотирање на бинарни дрва
2 AVL дрваДефинициjаОперации со AVL дрва
3 B— ДрваДефиницииОперации со B— дрва
4 Red/Black дрваДефиницииОперации со Црвено/Црно дрва
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
AVL дрво
Прво дрво од овоj вид (самобалансирачки дрва).
Г. Аделсон–Велски и Е. Ландис — 1962
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Време за извршување
За трите основни операции:• Вметнување• Пребарување• Бришење
©(log n)
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Баланс фактор
За секоj jазол покраj вредност и Баланс фактор ∈ {−1, 0, 1}.
def.Баланс фактор на AVL дрво е разликата мегу висините надесното и левото поддрво.
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
AVL дрвослика
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Преглед
1 Бинарни дрваВидови и дефиницииРотирање на бинарни дрва
2 AVL дрваДефинициjаОперации со AVL дрва
3 B— ДрваДефиницииОперации со B— дрва
4 Red/Black дрваДефиницииОперации со Црвено/Црно дрва
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Вметнување
• Класично изминување до точната локациjа• Класично вметнување• Ажурирање на баланс факторите движеjки се конкоренот
• Ротирање ако новиот баланс фактор на некоj jазол е −2или 2
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Ротирање
• Ако е −2 (левата страна повисока) — десна ротациjа• Ако е 2 (десната страна повисока) — лева ротациjа
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Бришење
Слично како и за вметнувањето.
• Класично изминување до точната локациjа• Бришење како при BST• Ажурирање на баланс факторите движеjки се конкоренот
• Ротирање ако новиот баланс фактор на некоj jазол е −2или 2
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Пребарување
Исто како и каj BST.
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Пример
http://bach.taneski.com/applet/
Ке направиме AVL дрво со следните вредности:(во во овоj редослед)
8, 9, 13, 3, 4, 2, 10, 14, 12, 11, 7, 6, 5, 15, 1
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Преглед
1 Бинарни дрваВидови и дефиницииРотирање на бинарни дрва
2 AVL дрваДефинициjаОперации со AVL дрва
3 B— ДрваДефиницииОперации со B— дрва
4 Red/Black дрваДефиницииОперации со Црвено/Црно дрва
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
B— Дрво
За разлика од AVL и Red/Black дрвото ова не бинарно дрво.
Rudolf Bayer и Ed McCreight — 1972
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
B— Дрводефинициjа
def.B— дрво е дрво од ред m > 1 кое задоволува:• секоj jазол има dm2 e ≤ m деца• коренот има барем 2 деца• сите лисjа имаат се на исто ниво (имаат иста висина)• Внатрешен jазол со k деца има k − 1 вредности
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
B— Дрвослика
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Преглед
1 Бинарни дрваВидови и дефиницииРотирање на бинарни дрва
2 AVL дрваДефинициjаОперации со AVL дрва
3 B— ДрваДефиницииОперации со B— дрва
4 Red/Black дрваДефиницииОперации со Црвено/Црно дрва
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Вметнување
Секое вметнување е на листовите.• Класично изминување до точната локациjа• Ако листот има помалку вредности од максималниот,вметнуваме тука (задржуваjки го редоследот)
• Ако нема помалку од максималниот броj вредности:- Избираме средина мегу вредностите вклучуваjки jа иновата вредност
- Вредностите помали од избраната ги ставаме во новjазол лево, а поголемите во нов десно.
- Избраната се вметнува каj таткото, што може да гопродолжи делењето нагоре.
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Бришење
Се пронаога елементот коj треба да се избрише, се брише исе преструктуира дрвото нагоре.
Наjлесно е бришење во лисjата.
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Пребарување
Исто како и каj BST дрвата.
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Пример
http://bach.taneski.com/applet/
Ке направиме B— дрво со следните вредности:(во во овоj редослед)
8, 9, 13, 3, 4, 2, 10, 14, 12, 11, 7, 6, 5, 15, 1
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Преглед
1 Бинарни дрваВидови и дефиницииРотирање на бинарни дрва
2 AVL дрваДефинициjаОперации со AVL дрва
3 B— ДрваДефиницииОперации со B— дрва
4 Red/Black дрваДефиницииОперации со Црвено/Црно дрва
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Red/Black дрво
Симетрично бинарно B— дрво
Rudolph Bayer — 1972
Исто како и двете претходните дрва, за сите операциивремето е ©(log n)
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Red/Black дрводефинициjа
def.Црвено/Црно дрво е самобалансирачко бинарнопребарувачко дрво.Покраj вредност секоj jазол има и боjа ∈ црвена, црна .Треба да биде запазено и:• Секоj jазол има или црвена или црна боjа.• Коренот има црна боjа.• Сите лисjа се црни (лисjата се nil)• Двете деца на црвен jазол се црни.• Патеката од било коj jазол до било коj лист коjпризлегува од него содржи ист броj на црни jазли.
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Red/Black дрвоRed/Black дрво
Претходно наведените ограничувања jа наметнуваатглавната особина на R/B дрвата:
Наjдолгиот пат од коренот до некоj лист е не повеке од двапати подолг од наjкраткиот пат во дрвото.
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Red/Black дрвослика
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Преглед
1 Бинарни дрваВидови и дефиницииРотирање на бинарни дрва
2 AVL дрваДефинициjаОперации со AVL дрва
3 B— ДрваДефиницииОперации со B— дрва
4 Red/Black дрваДефиницииОперации со Црвено/Црно дрва
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Операции со Црвено/Црни дрва
Операциите вметнување и бришење за овие дрва се достакомплексни.• При вметнување постоjат 5 различни случаи• При бришење 6 различни случаи
Пребарувањето е исто како и каj BSD дрвата.
Ке ги разгледаме на примерот.
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Операции со Црвено/Црни дрва
Иако тешки за имплементациjа овие дрва се доста користенипоради доброто време на извршување при наjлош случаj.
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Пример
http://bach.taneski.com/applet/
Ке направиме Црвено/Црно дрво со следните вредности:(во во овоj редослед)
8, 9, 13, 3, 4, 2, 10, 14, 12, 11, 7, 6, 5, 15, 1
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Заклучок
За да се искористи придобивката на логаритамско време запребарување/вметнување/бришење елементи на структурата
дрво балансирањето е многу битно.
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Прашања пред краj?
Благодарам за вниманието.
Бинарни дрва AVL дрва B— Дрва Red/Black дрва
Прашања пред краj?
Благодарам за вниманието.