试题查看

首页 > 软件水平考试 > 试题查看
【分析解答题】

【说明】本程序将两个从小到大的有序链表合成一个新的从小到大的有序链表。链表的每一项由类Node描述,而链表由类List描述。类List的成员函数有以下几个。 ①createList():创建从小到大的有序链表。 ②multiplyList(List L1,List L2):将链表L1和链表L2合并。 ③print();打印链表。# include <iostream.h>class List;class Node { friend class List; public: Node(int data){{{U}} (1) {{/U}}; } private: int data; Node *next; };class List { public: List( ) {list = NULL;} void multiplyList(List L1, List L2); void createList( ); void print( ); private: Node *list;};void List::createList( ){ Node *p, *u, *pm; int data; list = NULL; while (1) { cout<<"输入链表的一项: (小于零,结束链表)"<<end1;cin >> data;if(data<0)break; //小于零,结束输入 p = list; while (p != NULL && data > p->data) //查找插入点{ pre = p; p = p->next;} u={{U}} (2) {{/U}}:if(p==list) list = u;else pre->next = u;{{U}} (3) {{/U}}:}void List::multiplyList (List L1, List L2){ Node *pL1, *pL2, *pL, *u; list = NULL; pL1 = L1.list; pL2 = L2.1ist; while (pL1 != NULL && pL2!= NULL) {if (pL1->data < pL2->data){ u = new Node (pL1->data); pL1 = pL1 ->next;} else { u = new Node (pL2->data)); pL2 = pL2->next; } if (list==NULL) list={{U}} (4) {{/U}}; else { pL->next = u; pL =u; }}pL1 = (pL1 != NULL) pL1:pL2;while (pL1 != NULL){ u ={{U}} (5) {{/U}}; pL1 = pL1->next; if (list==NULL) list=pL=u; else { pL->next = u; pL = u; }}}void List::print( ){ Node *p;p = list;while (p != NULL){cout << p->data << "\t"; p = p->next;}cout << end1;}void main ( ){ List L1, L2, L;cout << "创建第一个链表\n"; L1.createList ( );cout << "创建第二个链表\n"; L2.createList ( );L1.print ( ); L2.print ( );L.multiplyList (L1, L2);L.print ( );}

查看答案解析

参考答案:

正在加载...

答案解析

正在加载...

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

0%的考友选择了A选项

0%的考友选择了B选项

0%的考友选择了C选项

0%的考友选择了D选项

你可能感兴趣的试题

阅读下列说明和算法,回答问题1和问题2。【说明】算法2-1是用来检查文本文件中的阅读下列说明以及图示(如图1所示),回答问题1~3。【说明】某大学准备开发一个学阅读下列说明,回答问题1~问题4。【说明】某超市的销售业务由一个销售业务管理系统阅读下列说明以及图示(如图1所示),回答问题1~3。【说明】某大学准备开发一个学阅读下列说明,回答问题1~问题4。【说明】某超市的销售业务由一个销售业务管理系统阅读以下说明和流程图,回答问题1至问题3,将解答写在对应栏内。【说明】(1)流程