要求:
给出任意两节点,判断两节点是否为纯上下级关系。例:
1.Node1为Node2的子节点或父节点,返回True
2.Node1为Node2的孙节点或祖父节点,返回True
3.Node1与Node2属同一分支,相隔数级,返回True
4.Node1为Node2同级其它节点的子节点或以下节点,返回False此函数怎样实现?

解决方案 »

  1.   

    我的站上有一个创建树型TTreeView的文章,看看对你有没有帮助。
      

  2.   

    用parent和level属性很快就搞定了
      

  3.   

    To 9igogo(就爱狗狗) :
    看来我没有把问题说明白:比如Node1是Node2兄节点的子节点,则Node1的Level就比Node2的Level小一,但这并不是纯上下级关系,所以不行,Parent也同样。-------------------------------------
    To hansonboy(良):
    3的意思是说Node1是Node2子节点的子节点的子节点的子节点的......或Node1是Node2父节点的父节点的父节点的父节点的......,也就是说,虽然Node1和Node2相隔若干级,但它们之间为同一根系,所以返回True4的意思是说Node1和Node2不在同一根系上,所以返回False
    -------
    比如说程序将硬盘上的目录读取出来并用节点方式显示,就和在资源管理器中的一样,在运行中随便选择两个文件夹,然后程序判断这两个文件夹是否属同一根系(即两节点是否为纯上下级关系),并返回布尔值。
      

  4.   

    首先判断level,并判断二者的level相等时二者的关系
    如果无法确定,则将level减1,循环,……可以根据index判断二者是否相同