按第一个子节点同级结构中的唯一值查找节点

本文关键字:唯一 查找 节点 结构 第一个 子节点 | 更新日期: 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;
}