0

我正在练习尝试准备考试。我现在正在做树遍历,我以为我已经掌握了它们,但是我已经解决了这个问题,我无法正确地进行顺序或后序遍历。

问题是:

假设将以下元素按指定顺序添加到空的二叉搜索树中:

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

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

关于应该如何添加它们的内容含糊不清,但我假设是按字母顺序排列的,因为这就是我在它之前制作《星球大战》的方式,而且效果很好。

所以,至少据我了解,这棵树看起来像:

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

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

但是,它说我的顺序和后顺序遍历是错误的,我不知道为什么。我认为这棵树是正确的,因为预订有效。这是我对其他两个的看法:

依次为:布赖恩、克利夫兰、乔、露易丝、梅格、彼得、斯图伊、泥潭

后序:克利夫兰、布赖恩、路易斯、乔、彼得、泥潭、斯图伊、梅格

任何帮助将不胜感激。每次我认为我已经掌握了遍历的句柄时,都会有一些事情让我陷入循环。

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

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

正确的遍历是:

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

按顺序:布赖恩、克利夫兰、乔、路易斯、梅格、彼得、Quagmire、Stewie

后序:克利夫兰、布赖恩、露易丝、乔、泥潭、彼得、斯特威、梅格

4

1 回答 1

0

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

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

于 2013-11-03T19:07:37.870 回答