专业软件设计师网站|培训机构|服务商(加客服微信:cnitpm或QQ:947530340进软件设计师学霸群)

软题库 培训课程
当前位置:信管网 >> 软件设计师 >> 每日一练 >> 文章内容
软件设计师案例分析每日一练试题(2022/8/18)
来源:信管网 2022年08月19日 【所有评论 分享到微信

软件设计师案例分析当天每日一练试题地址:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4

往期软件设计师每日一练试题汇总:www.cnitpm.com/class/27/e4_1.html

软件设计师案例分析每日一练试题(2022/8/18)在线测试:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2022/8/18

点击查看:更多软件设计师习题与指导

软件设计师案例分析每日一练试题内容(2022/8/18)

试题五
阅读以下说明、图和C代码。
【说明】
一般的树结构常采用孩子-兄弟表示法表示,即用二叉链表作树的存储结构,链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。例如,图10-8(a)所示的树的孩子-兄弟表示如图10-8(b)所示。

函数LevelTraverse()的功能是对给定树进行层序遍历。例如,对图10-1所示的树进行层序遍历时,结点的访问次序为D B A E F P C。
对树进行层序遍历时使用了队列结构,实现队列基本操作的函数原型如下表所示:



Bool、Status类型定义如下:
typedef enum { FALSE=0,TRUE=1 } Bool;
typedef enum { OVERFLOW=-2,UNDERFLOW=-1,ERROR=0,OK=1}Status;
树的二叉链表结点定义如下:
typedef struct Node {
char data;
struct Node *firstchild,*nextbrother;
} Node,*TreeNode;
【函数】
Status LevelTraverse ( TreeNode root )
{ /*层序遍历树,树采用孩子-兄弟表示法,root是树根结点的指针*/
Queue tempQ;
TreeNode ptr,brotherptr;
if (! root)
return ERROR;
InitQueue(&tempQ);
(1)  ;
brotherptr = root -> nextbrother;
while (brotherptr) {
EnQueue(&tempQ,brotherptr);
(2)  ;
}/*end-while*/
while(  (3)  ){
(4)  ;
printf("%c\t",ptr->data);
if(  (5)  )continue;
(6)  ;
brotherptr = ptr->firstchild->nextbrother;
while (brotherptr) {
EnQueue(&tempQ,brotherptr);
(7)  ;
}/*end-while*/
}/*end-while*/
return OK;
}/*LevelTraverse*/





信管网试题答案与解析:www.cnitpm.com/st/2454727644.html

信管网考友试题答案分享:

信管网试题答案与解析:www.cnitpm.com/st/2454727644.html
扫码关注公众号

温馨提示:因考试政策、内容不断变化与调整,信管网网站提供的以上信息仅供参考,如有异议,请以权威部门公布的内容为准!

信管网致力于为广大信管从业人员、爱好者、大学生提供专业、高质量的课程和服务,解决其考试证书、技能提升和就业的需求。

信管网软考课程由信管网依托10年专业软考教研倾力打造,官方教材参编作者和资深讲师坐镇,通过深研历年考试出题规律与考试大纲,深挖核心知识与高频考点,为学员考试保驾护航。面授、直播&录播,多种班型灵活学习,满足不同学员考证需求,降低课程学习难度,使学习效果事半功倍。

相关内容

发表评论  查看完整评论  

推荐文章