在线求一个简单递归查找函数

cdhuanglei 2006-08-29 09:58:51
我的类:

TOrgNode = class; //前置声明

TOrgNodeList = class(TObjectList) //从TObjectList继承的一个对象列表类
private
function GetItems(Index: Integer): TOrgNode;
procedure SetItems(Index: Integer; const Value: TOrgNode);
public
property Items[Index: Integer]: TOrgNode read GetItems write SetItems;
end;

TOrgNode = class(TObject)
private
FNodeIndex: Integer;
FName: string;
FSubOrgNodeList: TorgNodeList;
public
constructor Create(Idx: Integer);
destructor Destroy; override;
property NodeIndex: Integer read FNodeIndex write FNodeIndex;
property Name: string read FName write FName;
property SubOrgNodeList: TorgNodeList read FSubOrgNodeList; //一个子列表
end;

Var
orgNodeList: TOrgNodeList;

如何用一个递归查找函数,快速从orgNodeList中,查找到指定NodeIndex的TOrgNode对象呢?
...全文
106 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cdhuanglei 2006-08-29
  • 打赏
  • 举报
回复
哦,NodeIndex与List没有任何关系哦,是一个数据库中取得的设备编号。大家就用Name作查找条件吧
dolphin2001 2006-08-29
  • 打赏
  • 举报
回复
var
DestNodeList : TOrgNodeList;

....
DestNodeList := TOrgNodeList.Create(....





procedure loopsearch(SouceNodeList : TOrgNodeList ;NodeIndex : Integer)
var
tmpNodeList : TOrgNodeList;
begin
if
if (SouceNodeList.Count > NodeIndex) and (SouceNodeList[NodeIndex] <> nil) then
begin
DestNodeList.Add(SouceNodeList[NodeIndex]);
end
else
begin
tmpNodeList := SouceNodeList.SubOrgNodeList;
loopsearch(tmpNodeList,NodeIndex);
end;
end;

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧