首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
假设二叉树采用二叉链表存储结构存储,设计一个算法,求先序遍历序列中第k(1≤k≤二叉树中结点个数)个结点的值,要求: 根据设计思想,采用C或C++语言描述算法,关键之处给出注释。
假设二叉树采用二叉链表存储结构存储,设计一个算法,求先序遍历序列中第k(1≤k≤二叉树中结点个数)个结点的值,要求: 根据设计思想,采用C或C++语言描述算法,关键之处给出注释。
admin
2018-07-17
54
问题
假设二叉树采用二叉链表存储结构存储,设计一个算法,求先序遍历序列中第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世纪80年代,国际工人运动中影响最大的是()。
为加强君权,皇太极时代开始直接控制的“上三旗”不包括()。
1901年6月,发表《立宪法议》,首先提出君主立宪要求的是()。
关于希腊早期宗教的叙述不正确的是()。
在20世纪60年代末,日本发展成为资本主义世界第二号经济强国的诸多因素中,不包括()。
电子计算机的发展经过了四代,①电子数值积分计算机(ENIAC);②集成电路计算机;③大规模集成电路计算机;④晶体管计算机;⑤人工智能计算机,其先后顺序是()。
某激光打印机每分钟打印20页,每页4000字符,相应的设备驱动程序一次输出一个字符,采用中断方式,CPU处理每次中断需50微秒,则CPU用于打印的开销是()。
将两个长度为N的有序表归并到一个长度为2N的有序表,最少需要比较的次数是(),最多需要比较的次数是()。
随机试题
下列可出现中心性发绀的疾病是
A.维生素DB.维生素EC.维生素AD.维生素B1E.维生素B2缺乏易发生溶血性贫血的是()
医师和药师在药物临床应用时必须遵循
卡尔.马克思说:“在民主的国家里,法律就是国王:在专制的国家里,国王就是法律。”关于马克思这段话的理解,下列哪一选项是错误的?(2012年试卷一第9题)
根据管理运作方式,下列属于商业银行个人理财业务的有()。
我国四大佛教名山分别是五台山、峨眉山、武当山和九华山。()
第二次工业革命中,德国人______制成电动机,比利时人______发明发电机,推动了电力工业的发展。
[2008年1月]以直线y+x=0为对称轴且与直线y—3x=2对称的直线方程为()。
EconomicReforminChinaMoreUSsinologistshaveexpressedconfidenceinChina’seconomicreformandtheprospectsforChina
Whichofthefollowingfiguresistheoddoneout?
最新回复
(
0
)