首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
假设二叉树采用二叉链表存储结构存储,设计一个算法,求先序遍历序列中第k(1≤k≤二叉树中结点个数)个结点的值,要求: 根据设计思想,采用C或C++语言描述算法,关键之处给出注释。
假设二叉树采用二叉链表存储结构存储,设计一个算法,求先序遍历序列中第k(1≤k≤二叉树中结点个数)个结点的值,要求: 根据设计思想,采用C或C++语言描述算法,关键之处给出注释。
admin
2018-07-17
81
问题
假设二叉树采用二叉链表存储结构存储,设计一个算法,求先序遍历序列中第k(1≤k≤二叉树中结点个数)个结点的值,要求:
根据设计思想,采用C或C++语言描述算法,关键之处给出注释。
选项
答案
算法的设计如下: int n=1; ElemType PreNode(BTNode *b,int k)( ElemType ch; if(b==NULL) return ’ ’; if(n==k) return b—>data; ++n; ch=PreNode(b—>ichild,k); if(ch!=’ ’) return ch; ch=PreNOde(b—>rchiid,k); return ch; } 若对递归不熟悉的同学也可以在二叉树的非递归先序遍历算法模型上进行修改,考虑到非递归算法的复杂性,考场上并不推荐使用非递归算法,既耗时又容易出错。相比之下,递归算法不仅简单,代码数量也较短,适宜在考场上使用。学有余力的同学可以自己再用非递归算法把这题再做一遍。 下面给出非递归算法的代码: #define MaxSize 100 int n=1; ElemType PreNode(BTNode *b,int k){ BTNode *st[MaxSize],*p; if(b!=NULL){ st[++top]=b; while(top>—1){ p=st[top一一]; ++n; if(n==k)return P—>data; if(p—>rchild)st[++top]=p—>rchild; //右子树进栈 if (p—>lchild)st[r++top]=p—>lchild; //左子树进栈 } } return’ ’; } 在统考中,二叉树的算法大多会围绕遍历这个知识点进行出题,考生务必掌握好三种遍历算法,并在基本算法的基础上学会简单的修改进而解决问题。
解析
转载请注明原文地址:https://kaotiyun.com/show/3yRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
下列事件中发生在魏晋南北朝时期的有()①法显赴印度取经②纸成为主要的书写工具③一年养八辈蚕④海外贸易远至阿拉伯地区
()标志着二战中苏德战场转折的完成。
在巴黎和会上获利最大的两个国家是()。
二战期间,下列四次战役的时间先后顺序是()①莫斯科战役②诺曼底登陆③不列颠之战④阿拉曼战役
纳粹德国公开撕毁《凡尔赛和约》的步骤有()。①大量扩展陆军,重建空军,建造军舰②迫害犹太人③退出国联④开进莱茵非军事区
19世纪中期,德意志资产阶级迫切要求实现国家的统一,其首要的目的是()。
中华人民共和国恢复在联合国合法席位的时间是()。
“二战”后,联合国的成立反映了世界人民和平的愿望,下列叙述正确的是()。
西周前期,曾先后向东、南和西三个方向扩张,其中向南扩张主要发生在()
下列描述中,属于冯.诺依曼体系结构的特点是()。①采用流水线技术;②指令和数据均以二进制表示;③存储程序并且存储时不区别数据和指令。
随机试题
A.起病6h内升高,24h高峰,3~4d恢复正常B.起病4h内升高,16~24h高峰,3~4d恢复正常C.起病8~10h升高,2~3d时高峰,1~2周正常D.起病6~12h升高,24~48h达高峰,3~6d恢复E.起病3h升高,第2~5d出现平坦峰
A.急性乳房炎B.乳房脂肪瘤C.乳房囊性增生病D.乳房纤维腺瘤E.乳管内乳头状瘤
口腔黏膜的危险区
在世界银行内部的审查中,一般在世界银行设在借款国的办公室审查采购文件的是()。
监理单位在实施监理的过程中,发现施工单位存在安全事故隐患,应当()。
( )是签发给患有不宜进行预防接种的严重疾病的旅行者的一种证书。
甲公司的下列子公司中,不应纳入其合并会计报表合并范围的有()。
旅行社违反合同约定,中止对旅游者提供住宿、用餐、交通等旅游服务的,应当负担旅游者在被中止旅游服务期间所订的同等级别的住宿、用餐、交通等必要费用,并向旅游者支付旅游费用总额()的违约金。
《精神卫生法》实施后,心理咨询人员从事心理治疗或者精神障碍的诊断、治疗的,应处()罚款。
下列关于法律责任的表述不正确的是
最新回复
(
0
)