问题 单项选择题

算法的空间复杂度是指( )。

A.算法程序的长度

B.算法程序中的指令条数

C.算法程序所占的存储空间

D.算法执行过程中所需要的存储空间

答案

参考答案:D

解析: 一个算法的空间复杂度,一般是指执行这个算法所需的存储空间。一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占用的存储空间及算法执行过程中所需要的额外空间。

问答题

【说明】本程序将两个从小到大的有序链表合成一个新的从小到大的有序链表。链表的每一项由类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 ( );}

不定项选择