问答题

【参考答案】

[解析]
(A)a,left,i-A
递归排序左子区间,从left到i-A元素,不包括i元素。......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

问答题
【说明】本程序将两个从小到大的有序链表合成一个新的从小到大的有序链表。链表的每一项由类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) (1) ; 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= (2) : if(p==list) list = u; else pre->next = u; (3) :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= (4) ; else pL->next = u; pL =u; pL1 = (pL1 != NULL) pL1:pL2; while (pL1 != NULL) u = (5) ; 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 ( );