我正在努力练习试图准备考试。我现在正在进行树遍历,我认为我已经掌握了它们,但是我已经解决了这个问题而且我无法按顺序或顺序完成订单遍历。
问题是:
假设以指定顺序将以下元素添加到空二进制搜索树:
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
答案 0 :(得分:0)
您的树不正确,Quagmire
应该是Peter
的正确孩子,而不是Stewie
。
否则,您的遍历看起来不错。