logo

Брисање у АВЛ стаблу

Брисање чвора из АВЛ стабла је слично оном у бинарном стаблу претраге. Брисање може пореметити фактор равнотеже АВЛ стабла и стога дрво треба поново избалансирати да би се одржао АВЛнесс. У ту сврху морамо извршити ротације. Две врсте ротација су Л ротација и Р ротација. Овде ћемо разговарати о Р ротацијама. Л ротације су њихове слике у огледалу.

Ако је чвор који треба обрисати присутан у левом подстаблу критичног чвора, онда треба применити Л ротацију у супротном ако је чвор који треба избрисати присутан у десном подстаблу критичног чвора , Р ротација ће бити примењена.

Узмимо у обзир да је А критични чвор, а Б коренски чвор његовог левог подстабла. Ако чвор Кс, присутан у десном подстаблу А, треба да се избрише, онда могу постојати три различите ситуације:

Р0 ротација (чвор Б има фактор равнотеже 0)

Ако чвор Б има фактор равнотеже 0, а фактор равнотеже чвора А је поремећен након брисања чвора Кс, онда ће стабло бити ребалансирано ротирањем стабла користећи ротацију Р0.

Критични чвор А се помера удесно и чвор Б постаје корен стабла са Т1 као његовим левим подстаблом. Подстабло Т2 и Т3 постаје лево и десно подстабло чвора А. Процес укључен у ротацију Р0 приказан је на следећој слици.

Брисање у АВЛ стаблу

Пример:

Избришите чвор 30 из АВЛ стабла приказаног на следећој слици.

Брисање у АВЛ стаблу

Решење

У овом случају, чвор Б има фактор равнотеже 0, стога ће стабло бити ротирано коришћењем Р0 ротације као што је приказано на следећој слици. Чвор Б(10) постаје корен, док се чвор А помера удесно. Десно дете чвора Б ће сада постати лево дете чвора А.

једноставан формататор датума у ​​Јави
Брисање у АВЛ стаблу

Ротација Р1 (чвор Б има фактор равнотеже 1)

Ротација Р1 треба да се изврши ако је фактор равнотеже чвора Б 1. У ротацији Р1, критични чвор А се помера удесно са подстаблом Т2 и Т3 као лево и десно дете. Т1 треба поставити као лево подстабло чвора Б.

Процес укључен у ротацију Р1 приказан је на следећој слици.

Брисање у АВЛ стаблу

Пример

Избришите чвор 55 из АВЛ стабла приказаног на следећој слици.

Брисање у АВЛ стаблу

Решење :

Брисањем 55 из АВЛ стабла ремети се фактор равнотеже чвора 50, односно чвора А који постаје критични чвор. Ово је услов ротације Р1 у којем ће чвор А бити померен удесно (приказано на слици испод). Десно од Б је сада постало лево од А (тј. 45).

Процес који је укључен у решење приказан је на следећој слици.

Брисање у АВЛ стаблу

Р-1 Ротација (чвор Б има фактор равнотеже -1)

Ротација Р-1 се врши ако чвор Б има фактор равнотеже -1. Овај случај се третира на исти начин као ЛР ротација. У овом случају, чвор Ц, који је десно дете чвора Б, постаје коренски чвор стабла са Б и А као његовим левим и десним потомцима.

Подстабло Т1, Т2 постаје лево и десно подстабло Б, док Т3, Т4 постају лево и десно подстабло А.

композитни примарни кључ

Процес укључен у ротацију Р-1 приказан је на следећој слици.

Брисање у АВЛ стаблу

Пример

Избришите чвор 60 из АВЛ стабла приказаног на следећој слици.

Брисање у АВЛ стаблу

Решење:

у овом случају, чвор Б има фактор равнотеже -1. Брисањем чвора 60, нарушава се фактор равнотеже чвора 50, стога га треба ротирати Р-1. Чвор Ц, тј. 45 постаје корен стабла са чвором Б(40) и А(50) као његовим левим и десним дететом.

Брисање у АВЛ стаблу