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



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

问题是:

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

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

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

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

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

                            Meg
                         /      
                      Joe         Stewie
                     /            /    
                  Brian  Lois    Peter   Quagmire
                                         
                      Cleveland

预购遍历,它说我做对了: 梅格、乔、布莱恩、克利夫兰、露易丝、斯图维、彼得、泥潭

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

顺序:布莱恩、克利夫兰、乔、露易丝、梅格、彼得、斯蒂维、泥潭

后购:克利夫兰、布莱恩、露易丝、乔、彼得、泥潭、斯图维、梅格

任何帮助将不胜感激。每当我认为我已经掌握了遍历时,就会有一些东西让我循环。

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

                            Meg
                         /      
                      Joe         Stewie
                     /            /    
                  Brian  Lois    Peter   
                                               
                      Cleveland         Quagmire

正确的遍历是:

预购 : 梅格, 乔, 布莱恩, 克利夫兰, 露易丝, 斯图维, 彼得, 泥潭

顺序:布莱恩,克利夫兰,乔,露易丝,梅格,彼得,泥潭,斯图维

后购:克利夫兰、布莱恩、露易丝、乔、夸格米尔、彼得、斯图维、梅格

你的树不正确,Quagmire应该是Peter的正确子级,而不是Stewie

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

最新更新