已解决问题

用C语言实现前序和中序恢复二叉树

用C语言实现前序和中序恢复二叉树
将本文分享到朋友圈就可获得更多答案!!
问题补充  
/*InPreToTree():由前序遍历序列和中序遍历序列构造二叉树前序序列为pa[p1:p2]中序序列为ia[i1:i2]返回所构造的二叉树的根指针*/TNode*InPreToTree(char*pa,char*ia,intp1,intp2,inti.../*InPreToTree(): 由前序遍历序列和中序遍历序列构造二叉树前序序列为pa[p1:p2]中序序列为ia[i1:i2]返回所构造的二叉树的根指针*/TNode* InPreToTree(char *pa, char *ia, int p1, int p2, int i1, int i2){ /*请在BEGIN和END之间实现你的代码*/ /*****BEGIN*****/ /******END******/ /*请不要修改[BEGIN,END]区域外的代码*/}展开

本页链接:/question/2080796161268317948.html

所有答案

最佳答案:


其他答案:
按照你题目要求做的。。。由于我不知道你的TNode类是怎么定义的,所以我就直接输出结果了void InPreToTree(char preord[],char inord[],int preleft,int preright,int inleft,int inright){    /*请在BEGIN和END之间实现你的代码*/    /*****BEGIN*****/    int root2n,leftsize,rightsize;    if(preleft<=preright&&inleft<=inright)    {        for(root2n=inleft;root2n<=inright;root2n++)            if(preord[preleft]==inord[root2n]) break;         leftsize=root2n-inleft;        rightsize=inright-root2n;        if(leftsize>0)            InPreToTree(preord,inord,preleft+1,preleft+leftsize,inleft,root2n-1);        if(rightsize>0)            InPreToTree(preord,inord,preleft+leftsize+1,preright,root2n+1,inright);        printf("%c",inord[root2n]);    }    /******END******/    /*请不要修改[BEGIN,END]区域外的代码*/}望采纳,谢谢 本回答被提问者和网友采纳


都爱问答网

相关知识

发表评论

�

猜你感兴趣