给出一个分支列表,如何查找单独连接在一起的树列表列表

时间:2010-04-22 06:51:27

标签: c# graph

假设我有一个分支列表,如何找到单独连接在一起的树列表列表?下图应说明我的观点。输入是单个树中的分支列表,如标记的那样,即。 123等等

2 个答案:

答案 0 :(得分:1)

流程如下:

  1. 创建一个接受树节点作为参数的函数
  2. 如果节点没有子节点,则打印当前节点的值并返回。
  3. 如果节点有两个子节点,则结束当前单节点值列表,然后递归到左节点,然后递归到右节点
  4. 如果节点有一个子节点,请将其添加到树中包含的值列表中,然后递归到该节点。
  5. 继续。

答案 1 :(得分:1)

根据图像,有一个非常简单的解决方案。 让我们创建一个列表,其中包含相同类型列表的元素。过程将被称为tree_lists(list,tree)。您所需要做的就是:

  1. 看看目前的关节,你 将列表指针放在第一个上 列表元素。
  2. 如果有的话     当前节点中多个子节点:遍历每个节点 子树,递增列表指针 并打电话给 tree_lists(列表[I],current_subtree) 我是列表指针和 current_subtree是当前子树 =)
  3. 如果只有一个孩子存在,只需将此关节添加到当前列表项并继续下一个。
  4. 当然,列表指针和列表值必须以某种方式全局并且在重复中也会被修改。