Sign-up....

[数据结构]如何根据输入的中序遍历生成一颗2叉树

[数据结构]如何根据输入的中序遍历生成一颗2叉树

如何根据输入的中序遍历生成一颗2叉树,当然输入中包括如果没有这个节点,就输入0告诉程序,因此根据此输入生成唯一一颗二叉树。

我已经实现了前序遍历生成,《数据结构》上也有,但如何以中序遍历生成?

如果有生成逆波兰、波兰式生成的也一样,(非栈)

[150 byte] By [msdn] at [2007-8-14 12:47:53]
# 1 Re: [数据结构]如何根据输入的中序遍历生成一颗2叉树

好像是前序和中序一起才可以确定一个2叉树吧

中序不能确定一个2叉树

SaiRose at 2005-5-6 8:46:46 >
# 2 Re: [数据结构]如何根据输入的中序遍历生成一颗2叉树

再次提示!!!!

当然输入中包括 如果没有这个节点,就输入0告诉程序,因此根据此输入生成唯一一颗二叉树。

记住,0节点输入中也包括!!!!

wasltone at 2005-5-6 8:54:02 >
# 3 Re: [数据结构]如何根据输入的中序遍历生成一颗2叉树

给你个思路看看怎么样

按你的做发,输入时是按树的全部结点输入的,那么输入结束后

树的大小也就知道了,而又是中序,也就是说

你可以很容易的判断哪个地方是根,哪个地方是叶

比如输入7个数 1 2 3 4 5 6 7(其中可以有0,表示该结点没)

那么可以这样判断,这几数中处于中间位置的就是根,这里是4

然后在依次判断左边(1 2 3)和右边(5 6 7)

左边的仍是处于中间位置的是根这里是2,右边同样的,

再这样下去,直到只有一个了,那就是叶结点

不知道合不合你意

SaiRose at 2005-5-6 9:42:45 >

C/C++

All Classified