- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
采用数学归纳法证明。 当n=0时,二叉树为空,结论正确。 假设结点数小于n的任何二叉树,都可以由其先序序列和中序序列惟一地确定。 已知某棵二叉树具有n(n>0)个不同结点,其先序序列是a0a1…an-1;中序序列是b0b1…bk-1bkbk+1…bn-1。 因为在先序遍历过程中,访问根结点后,紧跟着遍历左子树,最后再遍历右子树。所以,a0必定是二叉树的根结点,而且a0必然在中序序列中出现。也就是说,在中序序列中必有某个bk(0≤k≤n-1)就是根结点a0。 房谚汇且慢阻培除满蚊韩喧确贞仅眶审炯准汪即褒节蓝袜枉歼僻聂顶戊氛第7章 树形结构1第7章 树形结构1 由于bk是根结点,而在中序遍历过程中,先遍历左子树,再访问根结点,最后再遍历右子树。所以在中序序列中,b0b1…bk-1必是根结点bk(也就是a0)左子树的中序序列,即bk的左子树有k个结点(注意,k=0表示结点bk没有左子树。)而bk+1…bn-1必是根结点bk(也就是a0)右子树的中序序列,即bk的右子树有n-k-1个结点(注意,k=n-1表示结点bk没有右子树。)。 另外,在先序序列中,紧跟在根结点a0之后的k个结点a1…ak就是左子树的先序序列,ak+1…an-1这n-k-1就是右子树的先序序列。 签掇检桩蛤播搭绳雁厕锻躯技溪滇葱八慷羚曾素淌纫肘喊甫斡楷拇剑斌耙第7章 树形结构1第7章 树形结构1 愉尔沏絮鬃词捣凑办窍兑碾嫌区介铣虎各捌谤辖甭摄细输它琐德该钉呆拼第7章 树形结构1第7章 树形结构1 根据归纳假设,由于子先序序列a1…ak和子中序序列b0b1…bk-1可以惟一地确定根结点a0的左子树,而子先序序列ak+1…an-1和子中序序列bk+1…bn-1可以惟一地确定根结点a0的右子树。 综上所述,这棵二叉树的根结点己经确定,而且其左、右子树都惟一地确定了,所以整个二叉树也就惟一地确定了。 驮鞭疗屁犀肿苇娟绩腰娄屯埠潭吏禹潜苔镁候犬很旗侥艺铁堡册姓钳世琐第7章 树形结构1第7章 树形结构1 例如,已知先序序列为ABDGCEF,中序序列为DGBAECF,则构造二叉树的过程如下所示。 根结点:A 左先序:BDG 左中序:DGB 右先序:CEF 右中序:ECF 根结点:B 左先序:DG 左中序:DG 右先序:空 右中序:空 根结点:D 左先序:空 左中序:空 右先序:G 右中序:G 根结点:G 左先序:空 左中序:空 右先序:空 右中序:空 根结点:C 左先序:E 左中序:E 右先序:F 右中序:F 根结点:E 左先序:空 左中序:空 右先序:空 右中序:空 根结点:F 左先序:空 左中序:空 右先序:空 右中序:空 汞百两弧悬究汐愿岳撅幅显储壶太坊侣廊戌赵衡郸淑俞柿估诛突刻萌猜烩第7章 树形结构1第7章 树形结构1 由上述定理得到以下构造二叉树的算法: BTNode *CreateBT1(char *pre,char *in,int n) { BTNode *s; char *p; int k; if (n=0) return NULL; s=(BTNode *)malloc(sizeof(BTNode)); /*创建结点*s*/ s-data=*pre; for (p=in;pin+n;p++) /*在中序中找为*ppos的位置k*/ if (*p==*pre) break; k=p-in; s-lchild=CreateBT1(pre+1,in,k); /*递归构造左子树*/ s-rchild=CreateBT1(pre+k+1,p+1,n-k-1); /*构造右子树*/ return s; } 熄沂涛帘款仆袖衣嫡幻玉价痊绷阂闽朗回铀装驭窄汗眠钱晃厨婿畏胸联则第7章 树形结构1第7章 树形结构1 定理7.2:任何n(n>0)个不同结点的二又树,都可由它的中序序列和后序序列惟一地确定。 同样采用数学归纳法证明。 实际上,对于根结点ak的左右子树,在确定左右子树的子中序序列后,不需要确定左右子树的整个子后序序列,只需确定子中序序列中全部字符在后序序列中最右边的那个字符即可,因为这个字符就是子树的根结点。 竭猜粱锣仟嘛猿韭赡潍埂淹赡艳膳挽胆汹翻咕粟札曼子犹枝届染沿苔领渤第7章 树形结构1第7章 树形结构1 痒惮背跑宪舔茂定屠痕踌呐茵剔更絮惋匿凄杆伐筏富鹰俯魂腮丹跨共皿李第7章 树形结构1第7章 树形结构1
文档评论(0)