- 1、本文档共52页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《计算机软件基础》复习题库(带答案)
线性表的链式存储结构与顺序存储结构相比优点是 CD 。
所有的操作算法实现简单 B.便于随机存取
便于插入和删除 D.便于利用零散的存储器空间
线性表是具有n个_C 的有限序列。
A.表元素 B.字符 C.数据元素
数据项 E.信息项
若长度为n的线性表采用顺序存储结构, 在其第I个位置插入一个新元素的算法的时间复
杂度为 C 。( K I < n+1)
0(0) B. 0(1)
2
C. 0(n) D. 0(n )
设A是一个线性表(ai,a2,…,a n),采用顺序存储结构,则在等概率的前提下,平均每插入
一个元素需要移动的元素个数为 B (n/2) ,平均每删除一个元素需要移动的元素个
数为
A2n 1个兀素所要移动的兀素个数为C53 1n
A
2n 1
个兀素所要移动的兀素个数为
C
5
3 1
n 1
n
A.
B.
2
2
2n 1
3n 1
C.
D.
3
4
5.
下列函数中,按它们在 n
时的无穷大阶数,最大的是
D
;若元素插在a与ai+i之间(0 < I < n-1)的概率为2(n ",则平均每插入一
n(n 1)
A. log n
n/2
B. nlogn D. n!
s所指结点加到p所指的结点之后,其语句应为:
C. 2
6.将下图所示的
D
s->n ext=p+1; p->n ext=s;
(*p). next=s; (*s). next=(*p). next;
s->n ext=p->n ext; p->n ext=s->n ext;
s->n ext=p->n ext; p->n ext=s;
将两个各有n个元素的有序表归并为一个有序表时,其最少的比较次数是 A 。
n B. 2n-1
C. n-1 D. 2n
下面的程序段是合并两个无头结点链表 (ha和hb)为一个无头结点链表 ha的过程,作为
参数的两个链表都是按结点的 data域由大到小链接的。合并后新链表的结点仍按此方式链
接。请填写下述空框,使程序能正确运行。
#defi ne NULL 0 typedef struct node{ int data;
struct node *n ext;
}no de, li nklisttype;
void combine(linklisttype *ha, linklisttype *hb){ lin klisttype *h, *p;
h = (li nklisttype *)malloc(sizeof(li nklisttype)); h->next = NULL;
p = h;
/*较大的元素先插入*/ TOC \o "1-5" \h \z while(ha != NULL && hb != NULL) if(ha->data>=hb->data){ p->n ext = (1) ;
/*较大的元素先插入*/
p = ⑵ ;
⑶ ;
} else{ p->n ext = (4) ;
p = ⑸;
⑹ ;
}
if(ha==NULL)⑺;
if(hb==NULL) (8) ;
ha = h->n ext;
free(h);}
free(h);
}
参考答案: ⑴ha (2) p-> next
⑷ hb (5) p-> next
(7) p->n ext=hb
如果表 A中所有元素(a 1,a 2,…,a n)与表
ha=ha->next
(6) hb=hb-> next
(8) p->n ext=ha
B的一个顺序子表(bk,b k+1,…b k+n-1)完全相同(即
a1=bk,a2=bk+1, ???an=bk+n-1),则称表A包含在表B中。设ha, hb为带头结点的单链表,分别表 示有序表A和B,下面的函数用于判别表 A是否包含在表 B中,若是,则返回true ,否则返 回false 。(提示:用递归实现)
#defi ne true 1 #defi ne false 0 #defi ne NULL 0 typedef struct no de{
int data;
struct node *n ext;
}no de, li nklisttype;
int in clusi on (I in klisttype *ha, li nklisttype *hb){
lin klisttype *pa, *pb;
pa = ha->n ext;
pb = hb->n ext;
⑴;
while(⑵)
if(pa->data=pb->data) (3) ;
else (4) ;
⑸;
}
参考答案:
if(pa==NULL) return(true)
⑵ pb!=NULL && pa->data>=pb->data
retur n(
文档评论(0)