数据l构W六章算法设计题[20]_跨考网
1Q已知一hn个结点的二叉?wi)的中序遍历序列与后序遍历序列分别存放于数?/span>IN[1Q?/span>n]?/span>POST[1Q?/span>n]中,Q设该二叉树(wi)各结点的数据值均不相同)(j)。请写一建立该二叉树(wi)的二叉链表结构的非递归法。该二叉链表的链l点l构?/span>(lchild,data,rchild)Q其?/span>data为数据域Q?/span>lchild?/span>rhild分别为指向该l点左、右孩子的指针域Q当孩子l点不存在时Q相应指针域为空Q用nil表示Q。?a target="_blank">北京航空航天大学 1998 ?/span> (15?/span>)?/span>
【参考答案?/font>
[题目分析]知二叉树(wi)中序序列与后序序列,W?/span>30题(sh)递归法建立?jin)二叉?wi)Q本题是非递归法?/span>
void InPostCreat(ElemType IN[],POST[],int l1,h1,l2,h2)
//׃叉树(wi)的中序序?/span>IN[]和后序序?/span>POST[]建立二叉?wi)?/span>l1,h1?/span>l2,h2分别是中序序列和
//后序序列W一和最后元素的下标Q初始调用时Q?/span>l1=l2=1,h1=h2=n?/span>
{typedef struct {int l1,h1,l2,h2; BiTree t; }node;
node s[],p;//s为栈Q容量够大
BiTree bt=(BiTree)malloc(sizeof(BiNode)); int top=0,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=l1;i<=h1;i++) if(IN[i]==POST[h2]) break;//在中序序列中查等?/span>POST[h2]的结?/span>
bt->data=POST[h2]; //根结点的?/span>
if(i==l1) bt->lchild=null; //bt无左子树(wi)
else //徏立左子树(wi)的数据入?/span>
{bt->lchild=(BiTree)malloc(sizeof(BiNode)); p.t=bt->lchild;
p.l1=l1; p.h1=i-1; p.l2=l2; p.h2=l2+i-l1-1; s[++top]=p; }
if(i==h1) bt->rchild=null; //bt无右子树(wi)
else {bt->rchild=(BiTree)malloc(sizeof(BiNode)); p.t=bt->rchild;
p.l1=i+1; p.h1=h1; p.l2=l2+i-l1; p.h2=h2-1; s[++top]=p; }//叛_?wi)数据入?/span>
}// while(top>0)
}l束InPostCreat
2022考研初复试已l接q尾壎ͼ考研学子全面q入2023届备?/b>Q跨考ؓ(f)23考研的考生准备?0大课包全E准备、全q复?fn)备考计划、目标院校专业辅对{全真复试模拟练?fn)和全程针对性指|2023考研的小伙伴针也已经开始择校和复习(fn)?jin),跨考考研畅学5.0版本全新升Q无Z在校在家都可以更自如的完成你的考研复习(fn)Q?/a>暑假集训?/span>带来?jin)院校专业初步选择Q明方向;考研备考全q规划,核心(j)知识点入门;个性化制定备考方案,助你赢在赯U,早出发一点离成功更q一点!
点击右侧咨询?/strong>直接前往?jin)解更?/strong>
考研院校专业选择和考研复习(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> |