【问题标题】:when to use inorder, preorder and postorder traversal何时使用中序、前序和后序遍历
【发布时间】:2013-01-22 15:42:19
【问题描述】:

我了解如何在二叉搜索树上进行中序、前序和后序遍历的代码。但是,我对应用程序感到困惑。

你会在什么时候使用它们?说明每种遍历方法何时最有意义的情况将非常有帮助。

谢谢!

【问题讨论】:

标签: binary-search-tree


【解决方案1】:

中序遍历只是按定义的顺序处理项目。例如,如果你有一个单词或名称列表的 BST,inorder traversal 会按顺序打印出来。

前序和后序遍历最常应用于除二叉搜索树之外的树。例如,要计算像 A + B * C 这样的表达式,您可以创建这样的树:

要计算表达式,您需要按后序遍历树,将每个运算符应用于其每个子树的值。

如果您希望(例如)以 Lisp 之类的语言生成输出,则可以将预序遍历用于大致相同的目的,因此表达式应输出为 (add A (mul B C))

【讨论】:

  • 是否有机会重新制作/重新链接损坏的图像?
  • 感谢您的提议,但现在我回家了,我可以看到图像了。必须被我工作的防火墙阻止(嘘!限制互联网访问!)。
  • @ChrisKnight:是的,我对此无能为力。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-16
  • 1970-01-01
  • 2018-09-09
相关资源
最近更新 更多