我写的treeview的遍历 ,欢迎交流(0分)

  • 主题发起人 轻音乐
  • 开始时间

轻音乐

Unregistered / Unconfirmed
GUEST, unregistred user!
var
node: TTreeNode;
label ok;
begin
node := TreeView1.TopItem;
while True do
begin
if node.HasChildren then
node := node.GetFirstChild
else
begin
while node.IsLast do
if node.Level = 0 then
goto ok
else
node := node.Parent;
node := node.GetNextSibling;
end;
end;
ok:null; //结束
end;
 
我没看懂[:(!]
 
其实你只用getnext就可以不,没毕要那么麻烦吧。
 
嗯,有够烂。恭喜你,你进步的余地相当大。
居然使用while(true)+goto的组合!!!!goto在Delphi中绝对是下下之策。
 
这只是一个框架,用goto自有goto的好处,欢迎大家把自己认为好的贴出来
 
差, I有好办法, 愿意开贴送分吗?
 
to 楼上
当然可以了,但要看你的有多好了
 
procedure TForm1.Button2Click(Sender: TObject);
var
i: Integer;
Node: TTreeNode;
begin
for i := 0 to TreeView1.Items.Count - 1 do
begin
Node := Treeview1.Items;
.....
.....
end;
end;

end.
 
高人写的程序就是高啊。。。。。。。

太高了。。。。。高到一塌糊涂。

晕倒~~~~~~~~~~~~
 
哈哈,还真有威力呀,各位别老说不好,有金子你们就掏出来
 
我一看delphi用GOTo语句就火!
 
我已经好几年没看到goto了...........
 
不会用递归的程序员不是合格的程序员。
我的解法:
procedure GetNode(Node:TTreeNode);
var
tmpNode:TTreeNode;
begin
tmpNode:=Node.getFirstChild;
while tmpNode<>nil do
begin
if tmpNode.HasChildren then
GetNode(tmpNode);
{......}
tmpNode:=Node.GetNextChild(tmpNode);
end;
end;

var
lNode: TTreeNode;
begin
lNode := TreeView1.TopItem;
GetNode(lNode);
end;

 
不过没分md
 
这年头“程序员”越来越多,平均工资越来越低就是被你们这帮基本功都不牢的菜鸟搞坏的。楼上的各位回头把数据结构的书拿出来认真学学吧。
 
大富翁WW,你也写的不好,你只能按照系统默认的顺序遍历下来,
 
还用什么递归啊,循环啊
你看 大富翁WW 老兄的方法最简单了
如果不是强调顺序,他的是最好的
 
我认为对树的遍历是值得探究的,大家先不要说别人的有多烂,来点代码出来供我们学习吧。
基本上我也是象delphilai一样通过递归遍历树,但感觉效率不高,特别是数据敏感的树
,但愿在这儿能见到一些高招
 
一帮不学无术的混混,这样下去中国的软件事业迟早会完蛋,实在是看不下去,否则才懒得理……
 
大富翁WW
写的就可以了~~
 
顶部