Algorithm 一阶和深度一阶递归树遍历
是否有任何算法可以以一级顺序递归遍历一棵树,而以后级顺序非递归遍历一棵树。非常感谢。说 遍历 与线性数据结构相比 比如链表和一维 阵列,其中只有一个逻辑 遍历方式,树结构 可以在许多不同的位置进行遍历 方式。从二进制文件的根开始 树,有三个主要步骤 可在中执行,且顺序为 它们的执行定义了 遍历类型 这些步骤(第 特定顺序)是:执行 当前节点上的操作(参考 作为“访问”节点),遍历 到左侧子节点,并遍历 到右侧子节点。因此 这个过程最容易描述 通过递归 在中遍历非空二叉树的步骤 预先订购,执行以下操作 在每个节点上递归操作, 从根节点开始:Algorithm 一阶和深度一阶递归树遍历,algorithm,tree,traversal,Algorithm,Tree,Traversal,是否有任何算法可以以一级顺序递归遍历一棵树,而以后级顺序非递归遍历一棵树。非常感谢。说 遍历 与线性数据结构相比 比如链表和一维 阵列,其中只有一个逻辑 遍历方式,树结构 可以在许多不同的位置进行遍历 方式。从二进制文件的根开始 树,有三个主要步骤 可在中执行,且顺序为 它们的执行定义了 遍历类型 这些步骤(第 特定顺序)是:执行 当前节点上的操作(参考 作为“访问”节点),遍历 到左侧子节点,并遍历 到右侧子节点。因此 这个过程最容易描述 通过递归 在中遍历非空二叉树的步骤 预先订购,执行以下
通过使用堆栈而不是递归中使用的隐式调用堆栈,您可以按后序迭代递归树。要获得有效的递归宽度优先搜索,您可以使用。它特别适用于分支因子较高的情况,在这种情况下,常规的广度优先搜索往往会因过度内存消耗而阻塞 编辑:,但为了完整起见,对算法进行了如下描述:
- 如果在此节点中找到所需的元素,请退出搜索并返回结果
- 否则,将尚未发现的任何后续节点(直接子节点)排队
如果您想进行非递归的深度优先遍历,那么最后一行显然是很有趣的。获取预订单或后订单只是修改在步骤2.b中添加节点的方式。不,昨晚我参加了一家公司的纸上测试。所谓级别优先,你是指宽度优先?这并不能真正回答问题,你的后订单遍历是递归的,并且你没有发布宽度优先遍历的非递归解决方案。