博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
已知树的前序中序求后序,或者已知树的中序后序求前序(1)
阅读量:5342 次
发布时间:2019-06-15

本文共 940 字,大约阅读时间需要 3 分钟。

网上逛帖子,看到的东东,回忆了一下,拿着前序和中序构建不出树来,所以找些帖子学习学习,重温一下

假设某二叉树的先序遍历序列是abdgcefh,中序遍历序列是dgbaechf,画出二叉树,并给出其后序遍历序列。

 分析:

先序遍历序列的第一个字符为根结点

中序遍历,根结点在中序遍历序列的中间左边部分是根结点的左子树的中序遍历序列,右边部分是根结点的右子树的中序遍历序列。

先序:abdgcefh --> a bdg cefh

中序:dgbaechf --> dgb a echf

得出结论:a是树根,a有左子树和右子树,左子树有bdg结点,右子树有cefh结点。

                                            

先序:bdg --> b dg

中序:dgb --> dg b

得出结论:b是左子树的根结点,b无右子树,有左子树。

                                       

先序:dg --> d g

中序:dg --> d g

得出结论:d是b的左子树的根结点,d无左子树,有右子树。

                           

先序:cefh --> c e fh

中序:echf --> e c hf

得出结论:c是右子树的根结点,c有左子树(只有e结点),有右子树(有fh结点)。

                                  改正:斜线上chf改为hf(截图不好改) 

先序:fh --> f h

中序:hf --> h f

得出结论:f是c的左子树的根结点,f有左子树(只有h结点),无右子树。

                                     

所以最后的图是

                         

同理如果我们知道中序是dgbaechf, 后序是gdbehfca

后序的最后一个(a)是根,然后根据中序  dgb  a   echf , 所以 

                                                 a

                                          dgb    echf

通过后序的gdb 知道  b是根, 然后根据中序遍历 dg  b, 所以

                                                b

                                           dg

通过后序的gd知道 d是根, 然后根据中序遍历   g    d, 所以

                                             d

                                         g

左子树构建结束,开始构建右子树   [中序是dgbaechf, 后序是gdbehfca]

根据后序的ehfc知道c是根,然后根据中序遍历  e   c   hf, 所以

                                                      c

                                                  e      hf

根据后序的hf知道 f是根,然后根据中序遍历  h    f,  所以

                                                    f

                                                 h

<已知树的前序中序求后序,或者已知树的中序后序求前序(2)>中会用程序实现.  

 

转载于:https://www.cnblogs.com/silentNight/p/5476814.html

你可能感兴趣的文章
Mac上安装Tomcat
查看>>
CSS3中box-sizing的理解
查看>>
传统企业-全渠道营销解决方案-1
查看>>
Lucene全文检索
查看>>
awk工具-解析1
查看>>
推荐一款可以直接下载浏览器sources资源的Chrome插件
查看>>
CRM product UI里assignment block的显示隐藏逻辑
查看>>
展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告...
查看>>
AMH V4.5 – 基于AMH4.2的第三方开发版
查看>>
Mac下安装npm全局包提示权限不够
查看>>
Web.Config文件配置之配置Session变量的生命周期
查看>>
mysql导入source注意点
查看>>
Python: 对于DataFrame.loc传入列表和传入元组输出区别的理解
查看>>
USACO / Sorting a Three-Valued Sequence (简单题,方法正确性待证)
查看>>
Android开发中 .9.png格式图形设计:
查看>>
Linux常见命令
查看>>
ASP.NET Page执行顺序如:OnPreInit()、OnInit()
查看>>
linux下编译安装nginx
查看>>
adb命令
查看>>
SQL自定义排序 ORDER BY
查看>>