完全二叉树,怎么用前序遍历序和后序遍历序确定这颗完全二叉树,

qq675927952 2009-04-24 04:43:30
求高手给个思路,急啊,
...全文
385 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
tg15 2009-04-27
  • 打赏
  • 举报
回复
应该是这样,对于任一个非子结点的结点,左儿子结点一定存在。
那么,对于先序,只要不是子结点,紧接着的结点一定是左儿子结点。

这样,可以先判断根结点,先序的第一个结点即是。剩下的可以分为两部分,分别是两个子树的遍历结果。关键是找出分界的地方。由于前面说了“对于先序,只要不是子结点,紧接着的结点一定是左儿子结点”那么,先序剩下的结点中,第一个一定是左子树的根,他在后序中一定是左子树中最后一个访问的,所以可以在后序中找到他,作为分界结点。完全二叉树中任一结点为根的树都满足完全二叉树的条件,同理可以用同样的方法处理。
tg15 2009-04-27
  • 打赏
  • 举报
回复
不好意思,搞错了。
qq675927952 2009-04-27
  • 打赏
  • 举报
回复
up 学习了,谢谢哦
hityct1 2009-04-25
  • 打赏
  • 举报
回复
居然有人这么就发了一篇文章:
http://www.cnki.com.cn/Article/CJFDTotal-MZSG200506015.htm

不过应该可以用。
可以下载的。
ericming200409 2009-04-25
  • 打赏
  • 举报
回复
不是很确定楼主是什么意思,但是不管做什么,递归肯定得用上
amossavez 2009-04-25
  • 打赏
  • 举报
回复
要判断是不是完全二叉树就要判断除了最后一层之外其它层是满的。

用先序和后序就能判断出根节点,接着可以判断出根结点的左右孩子的字数的根节点;如果这时只有一个孩子结点那就不是完全二叉树了,接着往下循环。我想大概就是这样的吧!
tg15 2009-04-25
  • 打赏
  • 举报
回复
因为是完全二叉树,所以,一个根结点,必定存在两个子结点,因此所有根结点B和其两个子树结点L、R,先序为BLR,后序为LRB。
故可以从后序中依次找出先序中也存在的LR的两个结点,且后序之后的结点与先序之前的结点为同一结点。此三结点可以并为一个子树M,再重复。

例:

对于后序:HIDJKEBFGCA
和 先 序:ABDHIEJKCFG

则有HI D和 D HI,可以并为M ,M为 D为根,H为左,I为右。

新序列为:MJKEBFGCA ABMEJKCFG,,
有JK E 和 E JK ,,并为N
有FG C 和 C FG,, 并为O

新序列为:MNBOA ABMNO,,
有MN B 和 B MN,,并为P

新序列为:POA APO
最终为:
.A B C
P.O 其中:P= M N O=F G
====
...A
.B...C
M.N.F.G
======
同理可以推出其他的。。
lzr4304061988012 2009-04-24
  • 打赏
  • 举报
回复
编程实现吗?
qq675927952 2009-04-24
  • 打赏
  • 举报
回复
前序+后序对于一般的树是做不出来,但是对完全二叉树就行。。。。哪位高手帮帮忙啊。。。
HeSWWW 2009-04-24
  • 打赏
  • 举报
回复
前序+后序感觉……做不出来……

高人指点
unikingest 2009-04-24
  • 打赏
  • 举报
回复
是已知前序遍历和后序遍历,来画出二叉树吗?
acdbxzyw 2009-04-24
  • 打赏
  • 举报
回复
接分。

33,009

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧