我正在努力练习它试图准备考试。我现在正在做树遍历,我以为我已经掌握了它们,但是我已经解决了这个问题,我无法正确获得顺序或后顺序遍历。
问题是:
假设以下元素按指定顺序添加到空的二叉搜索树中:
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
。
否则,您的遍历看起来不错。