【分析解答题】
【说明】本程序将两个从小到大的有序链表合成一个新的从小到大的有序链表。链表的每一项由类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选项