8得票3回答
层序遍历的时间复杂度

二叉树层序遍历的时间复杂度是什么?是O(n)还是O(log n)? void levelorder(Node *n) { queue < Node * >q; q.enqueue(n); while(!q.empty()) { ...

8得票2回答
在Haskell中通用遍历树的最简单方法

假设我使用language-javascript库在Haskell中构建AST。 AST具有不同类型的节点,每个节点可以具有那些不同类型的字段。每种类型都可以有许多构造函数(所有类型实例化为Data、Eq和Show)。 我想要计算树中每种类型的构造函数发生次数。我可以使用toConstr来获...

7得票1回答
Python - 树遍历问题

我在树的遍历方面遇到了困难,所以通常会像瘟疫一样避免它... 我有一个类,有点像这个简化版本(但功能上相同): class Branch(object): def __init__(self, title, parent=None): self.title = ti...

7得票2回答
用C++(使用迭代器)建模任意树

我正在寻找一种方法来建模一个具有任意数量子节点的树。 这个答案建议使用Boost Graph Library来完成这个任务: 什么是好的、稳定的C++树实现? 我需要执行的主要操作是遍历函数(前序、子节点、叶子)和其子树。我还需要从子节点向上收集数据的功能。 BGL是否是正确的选择,...

7得票6回答
我能否在没有递归和堆栈的情况下进行二叉树的中序遍历?

有没有人能给我一个不使用递归和栈的中序遍历二叉树的解决方案?

7得票4回答
使用先序遍历和中序遍历字符串检查子树

我正在阅读的一本书声称,检查二叉树 B 是否是二叉树 A 的子树的一种方法是构建两个树的 inorder 和 preorder 字符串(表示每个树的中序遍历和前序遍历的字符串),并检查 inorder_B 是否是 inorder_A 的子字符串 以及 preorder_B 是否是 preord...

7得票14回答
将二叉搜索树转换为双向链表

这是最近一次编程面试中的问题。 问题是:给定一棵二叉树,请编写一个程序将其转换为双向链表。双向链表中的节点按照锯齿形层序遍历的顺序排列。 我的方法是:可以对树进行锯齿形层序遍历并将其存储在数组中,然后创建一个双向链表。但是问题要求使用原地解决方案。有人能帮忙解释一下递归方法应该如何使用吗?

7得票4回答
Python: 嵌套函数中的引用变量指向外部作用域(非全局)

我正在尝试递归遍历一棵树,并跟踪遍历的路径,直到找到我要找的元素。然而,我遇到了两个问题: 虽然我的当前代码返回了正确的解决方案,但它有点hacky。我必须将正在遍历的当前路径推入final_path,然后返回final_path [0]。如果我只是尝试设置final_path = pat...