我尽力在第一个子节点兄弟结构中找到特定节点,但我无法做任何可以帮助或给我方法找到节点方法的人。
我可以写add方法,但我不能写方法。
我的代码:
public int Weight { get; private set; }
public string Data { get; private set; }
public int NodeIndex { get; private set; }
public TreeNode FirstChild { get; private set; }
public TreeNode NextSibling { get; private set; }
public TreeNode ParentNode { get; private set; }
TreeNode Root, Head;
public TreeNode()
{
}
public TreeNode(int Weight, TreeNode firstChild, TreeNode nextSibling, string Data, int NodeIndex)
{
this.Durability = Durability;
this.Weight = Weight;
this.Data = Data;
this.FirstChild = firstChild;
this.NextSibling = nextSibling;
this.NodeIndex = NodeIndex;
}
假设我在以下结构中创建了树,每个人都有唯一的NodeIndex 我怎样才能找到这个节点?
提前致谢。
这是我的结构:
Root
|
p1 ----- p2 ----- p4 ----- p6
| | | |
c1 p3 c4 p7
| |
c2 - c3 c5
答案 0 :(得分:0)
这样的东西?
public TreeNode NodeByIndex(TreeNode root, int NodeIndex)
{
if (root.NodeIndex == NodeIndex)
return root;
if (root.FirstChild != nil)
{
TreeNode c = NodeByIndex(root.FirstChild, NodeIndex);
if (c != nil)
return c;
}
if (root.NextSibling != nil)
{
TreeNode c = NodeByIndex(root.NextSibling, NodeIndex);
if (c != nil)
return c;
}
return null;
}