数据l构W六章算法设计题[19]_跨考网
1Q已知二叉树(wi)T的结点在先根ơ序下的排列?/span>A[1]Q?/span>A[2]Q…,A[n]Q在中根ơ序下的排列?/span>B[1]Q?/span>B[2]Q…,B[n]Q其中,A?/span>B是一l数l,数组元素的gؓT中相应的l点?/span>INFO字段的|q假定二叉树(wi)T中结点的INFO字段的g不相同,n>=0。试解答Q?/span>
Q?/span>1Q证明由A[1Q?/span>n]?/span>B[1Q?/span>n]能唯一的确定二叉树(wi)T的结构;
Q?/span>2Q给出徏造二叉树(wi)T的算法,要求所建造的二叉?wi)?/span>LLINK/RLINK链接l构表示Q且该算法是非递归法Q?/span>
Q?/span>3Q分析你所l算法的旉复杂性,该过E包括如何确定基本运如何推导出期望复杂性和最坏复杂性。?a target="_blank">吉林大学 1997 ?/span> (20?/span>) 1998 二?/span>
【参考答案?/span>
Q?/span>1Q由先序序列A[1..n]和中序序?/span>B[1..n],可以定一二叉树(wi),详见本章四第38?/span>.
Q?/span>2Q?/span>void PreInCreat( ElemTypeA[],B[]Q?/span>int l1,h1,l2,h2)
//׃叉树(wi)前序序列A[1..n]和中序序?/span>B[1..n]建立二叉?/span>,l1,h1,?/span>l2,h2分别为先序序列和
//中序序列W一和最后结点的下标.初始调用?/span>l1=l2=1,h1=h2=n ?/span>
{typedef struct {int l1,h1,l2,h2; BiTree t; }node;
BiTree bt;
int top=0,i; node s[],p; //s为栈,定w_?/span>
bt=(BiTree)malloc(sizeof(BiNode)); //甌l点I间
p.l1=l1; p.h1=h1; p.l2=l2; p.h2=h2; p.t=bt; s[++top]=p; //初始?/span>
while(top>0)
{p=s[top--]; bt=p.t; l1=p.l1; h1=p.h1; l2=p.l2 ;h2=p.h2;//取出栈顶数据
for(i=l2;i<=h2;i++) if(B[i]==A[l1]) break; //C序序列中查根l点的?/span>
bt->data=A[l1]; //A[l1]为根l点的?/span>
if(i==l2) bt->lchild=null; //bt无左子树(wi)
else //徏立左子树(wi)的数据入?/span>
{bt->lchild=(BiTree)malloc(sizeof(BiNode)); p.t=bt->lchild;
p.l1=l1+1; p.h1=l1+i-l2; p.l2=l2; p.h2=i-1; s[++top]=p; }
if(i==h2) bt->rchild=null; //bt无右子树(wi)
else {bt->rchild=(BiTree)malloc(sizeof(BiNode)); p.t=bt->rchild;
p.l1=l1+i-l2+1; p.h1=h1; p.l2=i+1; p.h2=h2; s[++top]=p; }//叛_?wi)数据入?/span>
}//while
}l束PreInCreat
(3)当二叉树(wi)为单支树(wi)Ӟ栈深nQ,当二叉树(wi)左右子树(wi)高相{时Q栈?/span>logn。时间复杂度O(n)?/span>
2022考研初复试已l接q尾壎ͼ考研学子全面q入2023届备?/b>Q跨考ؓ23考研的考生准备?0大课包全E准备、全q复?fn)备考计划、目标院校专业辅对{全真复试模拟练?fn)和全程针对性指|2023考研的小伙伴针也已经开始择校和复习(fn)了,跨考考研畅学5.0版本全新升Q无Z在校在家都可以更自如的完成你的考研复习(fn)Q?/a>暑假集训?/span>带来了院校专业初步选择Q明方向;考研备考全q规划,核心知识点入门;个性化制定备考方案,助你赢在赯U,早出发一点离成功更q一点!
考研院校专业选择和考研复习(fn)计划 | |||
2023备考学?/td> | 2023U上U下随时学习(fn) | 34所自划UK校考研复试分数U汇?/td> | |
2022考研复试最全信息整?/a> | 全国各招生院校考研复试分数U汇?/a> | ||
2023全日制封闭训l?/span> | 全国各招生院校考研调剂信息汇?/a> | ||
2023考研先知 | 考研考试U目有哪些? | 如何正确看待考研分数U? | |
不同院校相同专业如何选择更适合自己?/a> | 从就业说考研如何择专业? | ||
手把手教你如何选专业? | 高校研究生教育各学科门类排行?/a> |
相关推荐
跨考考研评
班型 | 定向班型 | 开班时?/td> | 高定?/td> | 标准?/td> | 评介绍 | 咨询 |
U季集训 | 冲刺?/td> | 9.10-12.20 | 168000 | 24800?/td> | 班面授+专业??+专业译֮向辅?协议加强评(高定?+专属规划{疑(高定?+_化答?复试资源(高定?+复试译(高定?+复试指导(高定?+复试班主?v1服务(高定?+复试面授密训(高定?+复试1v1(高定? | |
2023集训畅学 | 非定向(政英?数政qQ?/td> | 每月20?/td> | 22800?协议? | 13800?/td> | 先行阶在U课E?基础阶在U课E?强化阶在U课E?真题阶在U课E?冲刺阶在U课E?专业NҎ(gu)一对一评+班主dE督学服?全程规划体系+全程试体系+全程_化答?择校择专业能力定位体p?全年关键环节指导体系+初试加强?初试专属服务+复试全科标准班服?/td> |