如何在C#中实现此树形视图

时间:2019-04-01 04:46:59

标签: c# asp.net-mvc binary-tree

我需要实现图中附加的二叉树视图。过程是这样的。首先,从位置1开始。然后需要打印P#2。在p#3之后。由于二叉树方法需要先打印左,然后右打印。这是金字塔系统。请检查下面的示例。每个节点代表客户(按ID)及其位置。

例如:假设customerID为数字01,并且在树中可能有5个位置代表其ID#1,如图所示。客户2在树上有3个职位。因此,我们有很多客户,有些客户在每个节点中都有20多个职位。 我需要一种解决方案来实现此视图。请注意,这与二进制搜索树无关。谢谢!

Please check the image in here

1 个答案:

答案 0 :(得分:1)

您似乎正在尝试进行广度优先搜索,但是返回结果的顺序不正常,因此您需要从一行中的每个孩子中取出一个项目并进行交错处理。

因此,您将需要逐行进行:在该级别构建节点列表,然后再进入下一个级别,请获取每个节点的所有左子节点,然后获取每个节点的所有右子节点形成下一个层次。这将解开您的好奇树,您将按以下顺序访问节点:

  Position #1
  LEFTS = { P#1 }, RIGHTS = { P#2 }
  LEFTS = { P#3 P#4}, RIGHTS = { P#5 P#6 }
  LEFTS = { P#7 P#8 P#9 P#10 }, RIGHTS = { P#11 P#12 P#13 P#14 }