自己编写树(Tree)的封装类
2006-02-04 13:48:17 来源:WEB开发网核心提示:在VCL中包含有一个TList类,几乎可以实现<链表>所有功能,自己编写树(Tree)的封装类,Delphi的工程师真是伟大,但是在实际应用中需要TTree类,查看父结点的下一个兄弟 //退出条件,成功找到(Result <> nil) 或 直到根结点仍没有找到(Node = nil) No
在VCL中包含有一个TList类,几乎可以实现<链表>所有功能,Delphi的工程师真是伟大。但是在实际应用中需要TTree类,来实现<树>的功能,我写了两个类TyuTree,TYuNode。可以方便实现,树创建,结点增删、移动功能。请大家指教。
代码实例:
PRocedure Test();
Var
YuTree: TyuTree;
Node: TYuNode;
Begin
//第1步:创建树、增加第一个结点0
YuTree := TYuTree.Create;
Node := YuTree.Add(nil);//nil,表示增加根结点
Node.Data := Pointer(0);
//第2步:在结点0下增加子结点1
Node := YuTree.AddChild(Node);Node指向结点0
Node.Data := Pointer(1);
//第3步:在结点1下增加子结点2
Node := YuTree.AddChild(Node);
Node.Data := Pointer(2);
//第4步:切换到结点2的父结点1
Node := Node.GetParent;
//第5步:在结点1下增加子结点3,并作为第1个子结点
Node := YuTree.AddChildFirst(Node);
Node.Data := Pointer(3);
更多精彩
赞助商链接