Ausbalancierte Bäume Sortieren mit AVL-Bäumen
Ausbalancierte Bäume Sortieren mit AVL-Bäumen
Ausbalancierte Bäume Sortieren mit AVL-Bäumen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
epeat<br />
BegTree:=UpperT;<br />
UpperT:=UpperT^.Last;<br />
until (UpperT=nil) or (UpperT^.Right=BegTree);<br />
if UpperTnil then<br />
Move(UpperT^.Data^, LData, DatSize)<br />
else<br />
FillChar(LData,DatSize,0);<br />
LastNode:=UpperT;<br />
end;<br />
end;<br />
{* ════════════════════════════════════════════*}<br />
function SearchNode(Var SKey, SData;<br />
BegTree: AvlTree): AvlTree;<br />
begin<br />
if BegTree=nil then<br />
begin<br />
SearchNode:=nil; Exit;<br />
end;<br />
repeat<br />
case Compare(SKey,BegTree^.TreeKey) of<br />
Equal : begin<br />
Move(BegTree^.Data^, SData, DatSize);<br />
SearchNode:=BegTree;<br />
Exit;<br />
end;<br />
Small : BegTree:=BegTree^.Left;<br />
Bigger : BegTree:=BegTree^.Right;<br />
end;<br />
until BegTree=nil;<br />
FillChar(SData,DatSize,0);<br />
SearchNode:=NIL;<br />
end;<br />
{* ════════════════════════════════════════════*}<br />
procedure ReplaceData(Var OldKey, NewData;<br />
RepTree: AvlTree;<br />
Var Success: boolean);<br />
var RepNode : AvlTree;<br />
Dummy : DatArray;<br />
begin<br />
RepNode:=SearchNode(OldKey, Dummy, RepTree);<br />
if RepNode=NIL then<br />
begin<br />
Success:=false;<br />
Exit;<br />
end;<br />
Success:=true;<br />
Move(NewData, RepNode^.Data^, DatSize);<br />
end;<br />
{**********************************************}<br />
{* Prozeduren zur Erhaltung der <strong>AVL</strong>-Struktur *}<br />
{**********************************************}<br />
procedure AllBalanceFactors(<strong>AVL</strong>: AvlTree;<br />
Var Height: Integer);<br />
var B, HLeft, HRight : Integer;<br />
begin<br />
if <strong>AVL</strong>=nil then<br />
begin