mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-15 05:59:30 +02:00
lazutils: TAvgLvlTree.FindLeftMostKey/FindRightMostKey fixed
git-svn-id: trunk@47645 -
This commit is contained in:
parent
dcd5d9b09e
commit
73702875b0
@ -1278,14 +1278,30 @@ end;
|
|||||||
|
|
||||||
function TAvgLvlTree.FindLeftMostKey(Key: Pointer;
|
function TAvgLvlTree.FindLeftMostKey(Key: Pointer;
|
||||||
OnCompareKeyWithData: TListSortCompare): TAvgLvlTreeNode;
|
OnCompareKeyWithData: TListSortCompare): TAvgLvlTreeNode;
|
||||||
|
var
|
||||||
|
LeftNode: TAvgLvlTreeNode;
|
||||||
begin
|
begin
|
||||||
Result:=FindLeftMostSameKey(FindKey(Key,OnCompareKeyWithData));
|
Result:=FindKey(Key,OnCompareKeyWithData);
|
||||||
|
if Result=nil then exit;
|
||||||
|
repeat
|
||||||
|
LeftNode:=Result.Precessor;
|
||||||
|
if (LeftNode=nil) or (OnCompareKeyWithData(Key,LeftNode.Data)<>0) then break;
|
||||||
|
Result:=LeftNode;
|
||||||
|
until false;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TAvgLvlTree.FindRightMostKey(Key: Pointer;
|
function TAvgLvlTree.FindRightMostKey(Key: Pointer;
|
||||||
OnCompareKeyWithData: TListSortCompare): TAvgLvlTreeNode;
|
OnCompareKeyWithData: TListSortCompare): TAvgLvlTreeNode;
|
||||||
|
var
|
||||||
|
RightNode: TAvgLvlTreeNode;
|
||||||
begin
|
begin
|
||||||
Result:=FindRightMostSameKey(FindKey(Key,OnCompareKeyWithData));
|
Result:=FindKey(Key,OnCompareKeyWithData);
|
||||||
|
if Result=nil then exit;
|
||||||
|
repeat
|
||||||
|
RightNode:=Result.Successor;
|
||||||
|
if (RightNode=nil) or (OnCompareKeyWithData(Key,RightNode.Data)<>0) then break;
|
||||||
|
Result:=RightNode;
|
||||||
|
until false;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TAvgLvlTree.FindLeftMostSameKey(ANode: TAvgLvlTreeNode): TAvgLvlTreeNode;
|
function TAvgLvlTree.FindLeftMostSameKey(ANode: TAvgLvlTreeNode): TAvgLvlTreeNode;
|
||||||
|
Loading…
Reference in New Issue
Block a user