我在顺序和后序树遍历中做错了什么

时间:2013-11-03 18:55:42

标签: java tree binary-search-tree tree-traversal

我正在努力练习试图准备考试。我现在正在进行树遍历,我认为我已经掌握了它们,但是我已经解决了这个问题而且我无法按顺序或顺序完成订单遍历。

问题是:

假设以指定顺序将以下元素添加到空二进制搜索树:

Meg, Stewie, Peter, Joe, Lois, Brian, Quagmire, Cleveland

按照预订,有序和后序遍历的顺序编写上面树的元素。使用空格和/或逗号分隔的元素键入您的解决方案,例如:

它关于如何添加它们的含糊不清,但我假设按字母顺序排列,因为这就是我之前做过星球大战的方式,而且这种方式很有效。

所以,至少据我所知,树看起来像:

                            Meg
                         /      \
                      Joe         Stewie
                     /    \        /    \
                  Brian  Lois    Peter   Quagmire
                      \                   
                      Cleveland

预订遍历,它说我做对了是:     Meg,Joe,Brian,Cleveland,Lois,Stewie,Peter,Quagmire

然而,它说我的有序和后序遍历是错误的,我无法弄清楚为什么。我认为这棵树是正确的,因为预购工作。这是我在另外两个方面得到的:

按顺序:Brian,Cleveland,Joe,Lois,Meg,Peter,Stewie,Quagmire

下单后:克里夫兰,布莱恩,路易斯,乔,彼得,泥潭,史蒂维,梅格

非常感谢任何帮助。每当我认为我已经掌握了遍历时,有些事情会让我陷入困境。

编辑:我的树错了。 Q出现在字母表中的S之前。它应该是:

                            Meg
                         /      \
                      Joe         Stewie
                     /    \        /    
                  Brian  Lois    Peter   
                      \               \          
                      Cleveland         Quagmire

正确的遍历是:

预购:Meg,Joe,Brian,Cleveland,Lois,Stewie,Peter,Quagmire

按顺序:Brian,Cleveland,Joe,Lois,Meg,Peter,Quagmire,Stewie

下订单:Cleveland,Brian,Lois,Joe,Quagmire,Peter,Stewie,Meg

1 个答案:

答案 0 :(得分:0)

您的树不正确,Quagmire应该是Peter的正确孩子,而不是Stewie

否则,您的遍历看起来不错。