logo

Sletning i AVL-træet

Sletning af en node fra et AVL-træ ligner det i et binært søgetræ. Sletning kan forstyrre balancefaktoren for et AVL-træ, og træet skal derfor rebalanceres for at opretholde AVLness. Til dette formål skal vi udføre rotationer. De to typer rotationer er L-rotation og R-rotation. Her vil vi diskutere R-rotationer. L rotationer er spejlbillederne af dem.

Hvis knudepunktet, der skal slettes, er til stede i venstre undertræ af den kritiske knude, så skal L-rotation anvendes ellers, hvis knudepunktet, som skal slettes, er til stede i det højre undertræ af den kritiske knude , vil R-rotationen blive anvendt.

Lad os overveje, at A er den kritiske knude, og B er rodknuden i dets venstre undertræ. Hvis node X, der findes i det højre undertræ af A, skal slettes, kan der være tre forskellige situationer:

R0 rotation (Knudepunkt B har balancefaktor 0)

Hvis knudepunktet B har 0 balancefaktor, og balancefaktoren for knudepunkt A forstyrres ved sletning af knudepunktet X, vil træet blive rebalanceret ved at rotere træ ved hjælp af R0 rotation.

Den kritiske knude A flyttes til højre, og knudepunktet B bliver træets rod med T1 som venstre undertræ. Undertræerne T2 og T3 bliver venstre og højre undertræ af knudepunktet A. processen involveret i R0 rotation er vist i det følgende billede.

Sletning i AVL-træet

Eksempel:

Slet noden 30 fra AVL-træet vist i det følgende billede.

Sletning i AVL-træet

Løsning

I dette tilfælde har knudepunktet B balancefaktor 0, derfor vil træet blive roteret ved at bruge R0-rotation som vist i det følgende billede. Noden B(10) bliver roden, mens noden A flyttes til højre. Det højre barn af node B bliver nu det venstre barn af node A.

tilføjelse til array java
Sletning i AVL-træet

R1 Rotation (Node B har balancefaktor 1)

R1 Rotation skal udføres, hvis balancefaktoren for Node B er 1. I R1 rotation flyttes den kritiske node A til højre med undertræerne T2 og T3 som henholdsvis venstre og højre underordnede. T1 skal placeres som venstre undertræ i knudepunktet B.

Processen involveret i R1-rotation er vist på det følgende billede.

Sletning i AVL-træet

Eksempel

Slet Node 55 fra AVL-træet vist i det følgende billede.

Sletning i AVL-træet

Løsning :

Sletning af 55 fra AVL-træet forstyrrer balancefaktoren for knudepunktet 50, dvs. knudepunkt A, som bliver den kritiske knude. Dette er tilstanden for R1-rotation, hvor knudepunktet A vil blive flyttet til højre (vist på billedet nedenfor). Højre for B er nu blevet til venstre for A (dvs. 45).

Processen involveret i løsningen er vist på det følgende billede.

Sletning i AVL-træet

R-1 rotation (knude B har balancefaktor -1)

R-1 rotation skal udføres, hvis knudepunktet B har balancefaktor -1. Dette tilfælde behandles på samme måde som LR-rotation. I dette tilfælde bliver knudepunktet C, som er det højre underordnede af knudepunkt B, træets rodknudepunkt med B og A som henholdsvis venstre og højre underordnede.

Undertræerne T1, T2 bliver venstre og højre undertræer af B, mens T3, T4 bliver venstre og højre undertræer af A.

123 film

Processen involveret i R-1 rotation er vist på det følgende billede.

Sletning i AVL-træet

Eksempel

Slet noden 60 fra AVL-træet vist i det følgende billede.

Sletning i AVL-træet

Løsning:

i dette tilfælde har node B balancefaktor -1. Sletning af knudepunktet 60 forstyrrer balancefaktoren for knudepunktet 50, derfor skal det roteres R-1. Noden C, dvs. 45, bliver træets rod med knudepunktet B(40) og A(50) som venstre og højre underordnede.

Sletning i AVL-træet