繁体   English   中英

真实世界的前/后顺序树遍历示例

[英]Real world pre/post-order tree traversal examples

我理解预订,有序和后序树遍历算法就好了。 参考 )。 我理解了一些用法:按顺序遍历二进制搜索树,预先克隆树。 但我不能为我的生活提出一个现实世界的任务,我需要后序遍历才能完成。

你能举个例子吗? 并且:你能为我提供更好的预订遍历用途吗?

编辑:除了表达式树和RPN之外,还有谁可以给​​我一个例子吗? 这真的是所有的后期订单都有用吗?

拓扑排序是树的后序遍历(或有向无环图)。

想法是图的节点表示任务,并且从AB的边指示A必须在B之前执行。 拓扑排序将按顺序排列这些任务,使得任务的所有依赖关系都比任务本身更早出现。 UNIX这样的构建系统必须实现这个算法。

Dario提到的例子 - 用手动内存管理破坏树的所有节点 - 就是这个问题的一个例子。 毕竟,销毁节点的任务取决于其子节点的破坏。

正如Henk Holterman指出的那样,使用手动内存管理来销毁树通常是一种后序遍历。

伪代码:

destroy(node) {
  if (node == null) return;

  destroy(node.left)
  destroy(node.right)

  // Post-order freeing of current node
  free(node)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM