按第一个子节点同级结构中的唯一值查找节点
本文关键字:唯一 查找 节点 结构 第一个 子节点 | 更新日期: 2023-09-27 18:22:10
我尽了最大努力在第一个子节点兄弟结构中找到特定的节点,但我无法做到这一点,任何人都可以帮助或给我找到节点方法的方法。
我可以写加法,但我不会写加法。
我的代码:
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
类似的东西?
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;
}