你这是递归啊,直接遍历所有,去匹配名字?
把void改成bool,返回是否找到,没找到就继续遍历,找到了直接return

解决方案 »

  1.   

    还有fm.treeView1.Nodes[0], 也要改,改为当前选中节点,如果当前为选择任何节点,才默认第一个
    否则每次点下一个,都从头找,永远找的是第一个
      

  2.   


    自从您回复后一直在尝试,但是还是有一些问题:
    如果找到了,直接return,然后下次查找从已经找到的节点开始,但是这样的话那些已经找到的节点的同级其他节点就会被跳过去。如图:
    如果这里节点2符合条件,那么下一次查找的起始节点就是节点2,但是这样节点3就会被错过了。请问如何解决呢?
      

  3.   

    任何算法都不用
    建一个映射
    class map {string text,TreeViewNode node};
    在生成树时,把每一个map放到一个list中
    查时,直接搜list中的text,查到后,直接操纵node,
    查一个时,从当前查到的node的索引向下查,查到再返回
    查不到从头再玩一遍.递归算法就是学学(学习用),实际没用,任何不引入堆栈的算法都没可操作性,除时递归的层数很浅,数据很少现在内存不吃紧,对于对的算法,先序放到一个线性表中,益处多多.