试题查看

【分析解答题】

【程序说明】 本程序先从文件读人各考生的准考证号(设为整型数)及成绩,并将其存放在一棵检索二叉树上,二叉树结点的健值是成绩,每个结点带一链表,链表结点存放取得该成绩的考生的准考证号。然后,程序按中序遍历检索二叉树,从高分到低分输出结果,使每行输出成绩及其取得成绩的考生的准考证号。 【程序】#include < stdio. h > typedef struet idnode { int id;struct idnode * next; } ldNode; typedef struct marknode Iint mark; ldNode * head;struct marknode * left, * right; } MarkNode; char fname [ ] = "sp07.dat"; main( ) { int id, mark; MarkNode * root = null; FILE、* fp = fopen(fname," r" ); if(!fp) {printf("file%s open error, \n" , fname);exit(0); } while (!feop(fp)) {fscanf(fp," %d%d", &id, &mark);btree(&root, id, mark); }fclose(fp);print(root); } btree(MarkNod * * mpptr, int id, int mark) { ldNode * ip; MarkNode *mp = * mpptr; if{{U}} (1) {{/U}}{if (mark==p->mark) addldNODE、({{U}} (2) {{/U}}, id);else if ( mark >mp -> mark) btree (&top -> left, id, mark); else btree(&mp-> right, id, mark); } else Imp = ( marknode * ) malloc(sizeo (marknode) );mp -> mark = mark;mp -> left =mp -> right = NULL;{{U}} (3) {{/U}}addldNode(&mp -> head, id);{{U}} (4) {{/U}}; } } addldNode(ldNode * * ipp, int id) { ldNode * ip = * ipp; if ({{U}} (5) {{/U}})addldNode ({{U}} (6) {{/U}}), id;else { ip = (ldNode * )malloc(sizeof(ldNode) ); sp - > id = id; ip -> next = NULL; {{U}} (7) {{/U}} } } print(MarkNode * rap) { ldNode *ip, *ip0; if (mp) { print ( mp -> left); printf(" %6d: \t" ,mp -> mark); ip = mp -> head; while(ip) { printf(" %6d" ,ip -> id); ip0 =ip; ip = ip -> next; free (ip0); } printf(" \n" ); printf( mp -> right); free(mp); } }

查看答案解析

参考答案:

正在加载...

答案解析

正在加载...

根据网考网移动考试中心的统计,该试题:

0%的考友选择了A选项

0%的考友选择了B选项

0%的考友选择了C选项

0%的考友选择了D选项

你可能感兴趣的试题

一种最早用于科学计算的程序设计语言是(1);一种提供指针和指针操作且不存在布尔类根据乔姆斯基于20世纪50年代建立的形式语言的理论体系,文法被分为4种类型,即0考查下列文法:G(VT,VN,E,P)其中:VT=+,*,(,),i);VN=E一种最早用于科学计算的程序设计语言是(1);一种提供指针和指针操作且不存在布尔类阅读下列说明以及图示(如图1所示),回答问题1~3。【说明】某大学准备开发一个学阅读下列说明和算法,回答问题1和问题2。【说明】算法2-1是用来检查文本文件中的