标签: algorithm tree traversal postorder
我在了解如何遍历森林后期订单时遇到问题。它的定义是:(source: Data structures using C by Rohit Khurana page 330)
遍历树后的第一棵树的子树。
遍历树中的F的剩余树木。
访问F的第一个树的根节点。
这里是森林:
并且书中提到的后序遍历是:
C F E D B Q P Z Y X A
但我认为P在错误的地方,正确答案是:
C F E D B Q Z Y X P A
我想知道我的答案是否正确,或者该书的答案是否属实,为什么会这样?
感谢,
答案 0 :(得分:0)
根据这一说法,书中的答案是正确的。作为最后一个操作访问根节点仅对林的第一个树有效。
您所建议的行为就好像此声明对森林中的其他树也有效。
在你的例子中,在输出Q之后,你不输出P而是在A之前输出它。但是,P是F的第二个树的根,而不是第一个。因此,您应该在Q之后输出P,而不是在A之前输出。