变形计 王境泽是哪一集:那位兄弟有以二叉树的查找方式查找一个队列的pascal代码

来源:百度文库 编辑:高校问答 时间:2024/05/05 23:56:50
RT

TGetItemValue=function(Item:Pointer):Integer;
//在一个升序排列的指针列表中是否有指定的序号.二分法查找
function ListGetItemIndexInAscending(List:TList;GetItemValue:TGetItemValue;Value:Integer):Integer;
var
i,j,m:Integer;
begin
Result:=-1;
if(List=nil)or(List.Count=0)then
exit;
i:=0;
j:=List.Count-1;
if GetItemValue(List[i])=Value then
Result:=i
else
if GetItemValue(List[j])=Value then
Result:=j
else
begin
if(GetItemValue(List[i])<Value)and(Value<GetItemValue(List[j]))then
begin
m:=(i+j)div 2;
while i<m do
begin
if GetItemValue(List[m])=Value then
begin
Result:=m;
Break;
end
else
if Value>GetItemValue(List[m])then
i:=m
else
j:=m;
m:=(i+j)div 2;
end;
end;
end;
end;