我了解如何在二叉搜索树上进行inorder,preorder和postorder遍历的代码。不过,我对这个应用程序感到困惑。什么时候使用inorder,preorder和postorder遍历
你什么时候使用每个?说明每种遍历方法何时最有意义的情况将非常有帮助。
谢谢!
我了解如何在二叉搜索树上进行inorder,preorder和postorder遍历的代码。不过,我对这个应用程序感到困惑。什么时候使用inorder,preorder和postorder遍历
你什么时候使用每个?说明每种遍历方法何时最有意义的情况将非常有帮助。
谢谢!
中序遍历只是按照定义的顺序处理项目。例如,如果您有一个BST的单词或名称列表,那么遍历将按顺序打印出来。
预过程和后序遍历最经常应用于二叉搜索树以外的树。例如,为了评估像A + B * C
的表达,可以创建这样的树:
为了评估表达式,遍历树在后序,从它的每个子的施加每个操作者的值 - 树。
如果您希望(例如)使用类似Lisp的语言生成输出,则预置遍历可用于大致相同的目的,因此表达式应为(add A (mul B C))
。
你有可能重拍/重新链接你的图片吗? –
谢谢你的提议,但现在我回家了,我可以看到图像。必须被我工作的防火墙阻止(限制互联网访问!)。 –
@ChrisKnight:是的,对此我可以做的不多。 –
可能的重复[何时使用预订,后序和中间二进制搜索树遍历策略](http://stackoverflow.com/questions/9456937/when-to-use-preorder-postorder-and-inorder-binary -search-tree-traversal-strate) –