数据结构自测题资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.绪论

1.1 单项选择题

1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的①、数据信息在计算机中的②以及一组相关的运算等的课程。

①A.操作对象B.计算方法C.逻辑结构D.数据映象

②A.存储结构B.关系C.运算D.算法

2. 数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是①的有限集合,R是D上的②的有限集合。

①A.算法B.数据元素C.数据操作D.数据对象

②A.操作B.映象C.存储D.关系

3. 在数据结构中,从逻辑上可以把数据结构分成。

A.动态结构和静态结构B.紧凑结构和非紧凑结构

C.线性结构和非线性结构D.内部结构和外部结构

4. 算法分析的目的是①,算法分析的两个主要方面是②。

①A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系

C. 分析算法的效率以求改进

D. 分析算法的易懂性和文档性

②A. 空间复杂性和时间复杂性 B. 正确性和简明性

C. 可读性和文档性

D. 数据复杂性和程序复杂性

5. 计算机算法指的是①,它必具备输入、输出和②等五个特性。

① A. 计算方法 B. 排序方法

C. 解决问题的有限运算序列

D. 调度方法

②A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性

C. 确定性、有穷性和稳定性

D. 易读性、稳定性和安全性

1.2 填空题(将正确的答案填在相应的空中)

1. 数据逻辑结构包括、和三种类型,树形结构和图形结构合称为。

2. 在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。

3. 在树形结构中,树根结点没有结点,其余每个结点有且只有个直接前驱结点,叶子结点没有结点,其余每个结点的直接后续结点可以。

4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。

5. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。

6. 算法的五个重要特性是__ __ , __ __ , ___ _ , __ __ , _ ___。

7. 分析下面算法(程序段),该算法的时间复杂度是__ __。

for (i=0;i

for (j=0;j

A[i][j]=0;

8. 分析下面算法(程序段),该算法的时间复杂度是__ __。

for (i=0;i

for (j=0; j

A[i][j]=0;

9. 分析下面算法(程序段),该算法的时间复杂度是__ __。

s=0;

for (i=0;i

for (j=0;j

for (k=0;k

s=s+B[i][j][k];

sum=s;

10. 分析下面算法(程序段),该算法的时间复杂度是__ __。

i=s=0;

while (s

{ i++;

s+=i; //s=s+i

}

11. 分析下面算法(程序段),该算法的时间复杂度是__ __。

i=1;

while (i<=n)

i=i*2;

第二章基础知识

一、选择题

1、线性表是_______。

A.一个有限序列,可以为空

B.一个有限序列,不能为空

C.一个无限序列,可以为空

D.一个无限序列,不能为空

2、在一个长度为n 的顺序存储的线性表中,向第i 个元素(1≤ i ≤ n+1)位置插入一个新元素时,需要从后向前依次后移______个元素。

A. n-i

B. n-i+1

C. n-i-1

D. i

3、在一个长度为n 的线性表中,删除值为x 的元素时需要比较元素和移动元素的总次数为_______。

A. (n+1)/2

B. n/2

C. n

D. n+1

4、在一个顺序表的表尾插入一个元素的时间复杂性的量级为_______。

A. O(n)

B. O(1)

C. O(n 2)

D. O(log 2n)

5、设单链表中指针p 指向结点i a ,若要删除i a 之后的结点(若存在),则需修

改指针的操作为____________。

A. p->next=p->next->next;

B. p=p->next;

C. p=p->next->next;

D. next=p;

6、设单链表中指针p 指向结点i a ,指针f 指向将要插入的新结点x ,问:

(1)当x 插在链表中两个数据元素i a 和i+1a 之间时,只要先修改______后修改

______即可。

A. p->next=f

B. p->next=p->next->next

C. p->next=f->next

D. f->next=p->next

E. f->next=NULL

F. f->next=p

(2)在链表中最后一个结点n a 之后插入时,只要先修改______后修改______即

可。

A. f->next=p

B. f->next=p->next

C. p->next=f

D. p->next=f->next

E. f=NULL

7、在一个单链表中,若要在p 所指向的结点之前插入一个新结点,则此算法的时间复杂度为________。

A. O(n)

B. O(n/2)

C. O(1)

D. O(8、不带头结点的单链表L 为空的判定条件为_________。

A. L==NULL

B. L->next==NULL

C. L->next==L

D. L!=NULL

9、带头结点的单链表L 为空的判定条件为_________。

A. L==NULL

B. L->next==NULL

C. L->next==L

D. L!=NULL

10、指针p 指向双向链表中的结点i a ,i-1a 为i a 的前驱结点,指针f 指向将要插

入的新结点x 。x 插在i -1a 和i a 之间,此时需要修改指针的操作依次为

_________________。

A. p->prior->next=f

B. p->prior=f

C. f->next=p

D. f->prior=p->prior

11、在一个带头结点的双向循环链表中,若要在指针p 所指的结点之后插入一个q 指针所指向的结点,则需要对q->next 赋值为______。

A. p->prior

B. p->next

C. p->next->next C. p->prior->prior

二、填空题:

1、线性表的两种存储结构分别为__________和_______________。

2、若经常需要对线性表进行插入和删除运算,则最好采用_______存储结构,若经常需要对线性表进行查找运算,则最好采用________存储结构。

3、访问一个线性表中具有给定值元素的时间复杂度为__________。

相关文档
最新文档