首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知深度为h的二叉树采用顺序存储结构已存放于数组BT[1..2h-1]中,请写一非递归算法,产生该二叉树的二又链表结构。设二又链表中链结点的构造为(lchild,data,rchild),根结点所在链结点的指针由T给出。
已知深度为h的二叉树采用顺序存储结构已存放于数组BT[1..2h-1]中,请写一非递归算法,产生该二叉树的二又链表结构。设二又链表中链结点的构造为(lchild,data,rchild),根结点所在链结点的指针由T给出。
admin
2019-08-01
45
问题
已知深度为h的二叉树采用顺序存储结构已存放于数组BT[1..2
h
-1]中,请写一非递归算法,产生该二叉树的二又链表结构。设二又链表中链结点的构造为(lchild,data,rchild),根结点所在链结点的指针由T给出。
选项
答案
二叉树采用顺序存储结构(一维数组)是按完全二叉树的形状存储的,不是完全二叉树的二叉树顺序存储时,要加“虚结点”。数组中的第一个元素是根结点。本题中采用队列结构。 typedef struct{ BiTree bt: //-叉树结点指针 int num; }tnode: //aura是结点在一维数组中的编号 tnode Q[maxsize]; //循环队列,容量足够大 void creat(BiTree T,ElemType BT[]){ //深度h m-Y-树存于一维数组BT[1..2
h
-1]中-- //本算法生成该二叉树的二叉链表存储结构 tnode tq: //tq是队列元素 int len,i: //数组长度 len=strlen(BT); T=(BiTree)malloc(sizeof(BiNode));//申请结点 T一>data=BT[1]; //根结点数据 tq.bt=T;tq.num=1; Q[1]=tq; //根入队列 front=0;rear=1; //循环队列头、尾指针 while(front!=rear){ //当队列不空时循环 front=(front+1)%maxsize; tq=Q[front];P=tq.bt;i=tq.hum; //出队,取出结点及编号 if(BT[2*i]==’#’.||2*i>len) p一>lehild=null; //左子树为空,’#’表示虚结点 else{ //建立左子女结点并入队列 p一>lchild=(BiTree)malloc(sizeof(BiNode)); //申请结点空间 P一>lchild一>data=BT[2*i]; //左子女数据 tq.bt=p一>lehild:tq.hum=2*i;rear=(rear+1)%maxsize; //计算队尾位置 Q[rear]=tq; //左子女结点及其编号入队 } if(BT[2*i+1]==’#’||2*i+l>len)p一>rchild=null; //右子树为空 else{//建立右子女结点并入队列 P一>rchild=(BiTree)malloc(sizeof(BiNode); //申请结点空间 P一>rchild一>data=BT[2*i+1];tq.bt=p->rchild;tq.num=2*i+l; rear=(rear+1)%maxsize;Q[rear]=tq;//计算队尾位置,右子女及其编号入队 } }//while }
解析
转载请注明原文地址:https://kaotiyun.com/show/s3Ci777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
以下不属于雅典城邦形成和发展过程中的改革的是()。
在西欧列强海外殖民扩张进程中,各国之间相互争夺海上霸权。18世纪末,英国在争霸中取得胜利的根本原因在于()
公元843年,查理曼的三个孙子签订《凡尔登条约》三分查理曼帝国,奠定的三个国家的形是()。①德意志②法兰西③西班牙④意大利
赋税是我国古代国家宏观管理经济的重要手段。 据此回答问题:哪位皇帝的即位首次应用了秘密立储制?()
罗斯福新政的中心措施是对()的调整。
古埃及第24朝法老波克利斯进行改革,宣布废除奴隶制,债权人只能索取债务人的财产作抵偿,而不能占有债务人的人身,因为财产属于个人,而公民人身属于国家,国家需要他们服役。该改革旨在
下列各组条约的时间排列顺序正确的是()。①《布列斯特条约》②《色佛尔条约》③《九国公约》④《洛桑条约》
庆历新政是统治集团内部为了改革弊病而进行的一次努力。回答问题:范仲淹在()中提出了具体的改革方案。
提出电磁感应定律的是物理学家()。
设有m个连续单元供一个栈与队列使用,且栈与队列的实际占用单元数事先不知道,但是要求在任何时刻它们占用的单元数量不超过m,试写出上述栈与队列的插入算法。
随机试题
女性,32岁,体检发现尿中有红细胞,白细胞和少量蛋白,来医院复查尿常规为1~3个红细胞/HP,8~10个白细胞/HP,尿蛋白0.3g/L,行清洁中段尿培养。需做的辅助检查应首选
“七叶一枝花”的正名是()。
燃气管与给水管的水平净距以及燃气管顶与路面的距离有何要求?B公司对事故应该怎么负责?
公路工程交工验收时,由()对工程质量是否合格做出结论。
不考虑资产负债表日后事项情况下,如企业确认收入后,又发生销售退回,不论是当年销售的,还是以前年度销售的,一般应冲减退回当月的销售收入,同时冲减退回当月的销售成本,如该项销售已经发生现金折扣或销售折让的,应在退回当月一并调整。()
白老师组织大班幼儿开展投掷活动,第一阶段,白老师请幼儿用木制的“火箭”投向距离4米左右的“大怪兽”;第二阶段,白老师为幼儿提供了沙包,引导他们投向距离5米左右的“小怪兽”;最后,白老师组织幼儿进行投掷比赛,在幼儿获得成功体验之后,鼓励幼儿自制各种投掷材料,
父母是孩子交往最早的人,和父母的关系是子女形成的第一个人际关系。()
一、注意事项 1.申论考试,与传统作文考试不同,是对分析驾驭材料的能力与对表达能力并重的考试。 2.作答参考时限:阅读资料40分钟,作答110分钟。 3.仔细阅读给定的资料,按照后面提出的“申论要求”依次作答。二、给定资料(1)
下列关于数据库设计的叙述中,正确的是()。
A、Yes,Ilikeit.B、No,I’msleepy.C、I’vereaditbefore.D、Thanksalot.A本题问的是是否喜欢这个故事,B和D选项都与问题无关,而C说的是我看过这本书,也不是对问题的回答,故选
最新回复
(
0
)