文档库 最新最全的文档下载
当前位置:文档库 › 数据结构与算法期末考试复习试题

数据结构与算法期末考试复习试题

数据结构与算法期末考试复习试题
数据结构与算法期末考试复习试题

《数据结构与算法》复习题

一、选择题。

1在数据结构中,从逻辑上可以把数据结构分为 C 。

A ?动态结构和静态结构

B ?紧凑结构和非紧凑结构

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

2?数据结构在计算机内存中的表示是指A。

A ?数据的存储结构B.数据结构C.数据的逻辑结构 D ?数据元素之间的关系

3?在数据结构中,与所使用的计算机无关的是数据的_A_结构。

A .逻辑

B .存储

C .逻辑和存储

D .物理

4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。

A .数据的处理方法B.数据元素的类型

C.数据元素之间的关系 D .数据的存储方法

5.在决定选取何种存储结构时,一般不考虑亠。

A .各结点的值如何

B .结点个数的多少

C.对数据有哪些运算 D .所用的编程语言实现这种结构是否方便。

6.以下说法正确的是_D_。

A .数据项是数据的基本单位

B.数据元素是数据的最小单位

C.数据结构是带结构的数据项的集合

D.—些表面上很不相同的数据可以有相同的逻辑结构

7.算法分析的目的是A,算法分析的两个主要方面是_A_。

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

C.分析算法的效率以求改进C.分析算法的易读性和文档性

(2 ) A .空间复杂度和时间复杂度 B .正确性和简明性

C.可读性和文档性 D .数据复杂性和程序复杂性

8. ______________________________________ 下面程序段的时间复杂度是 O(n 2)

s =0;

for( I =0; i

9. 下面程序段的时间复杂度是 O(n *m)

for( i =0; i

A[i][j] = 0;

10.

下面程序段的时间复杂度是 O(log 3n)

i = 0;

while (i<=n )

i = i * 3 ; 11. 在以下的叙述中,正确的是 _B

A .线性表的顺序存储结构优于链表存储结构

B .二维数组是其数据元素为线性表的线性表 C. 栈的操作方式是先进先出

D. 队列的操作方式是先进后出

12?通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 _B 。A ?数据元素具有同一特点

B. 不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致

C. 每个数据元素都一样

D. 数据元素所包含的数据项的个数要相等

A 。

B ?插入删除不需要移动元素

D ?所需空间与其长度成正比 15.带头结点的单链表 head 为空的判定条件是 B 。 A . head == NULL B head->next ==NULL

13?链表不具备的特点是

A ?可随机访问任一结点

C .不必事先估计存储空间 14.不带头结点的单链表

head 为空的判定条件是 A . head == NULL

B head-> next ==NULL

C . head->next ==head

D head!=NULL

C. head->next ==head D head!=NULL

16?若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用

D 存储方式最节省运算时间。

A ?单链表

B ?给出表头指针的单循环链表C.双链表 D ?带头结点的双循环链表

17?需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B Q

A?单链表 B .静态链表C.线性链表 D ?顺序存储结构

18.非空的循环单链表head的尾结点(由p所指向)满足C。

A . p->next == NULL

B . p == NULL

C. p->next ==head D . p == head

19?在循环双链表的p所指的结点之前插入s所指结点的操作是_D_ Q

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

B.p->prior = s ; p->prior->next = s ; s->next = p ; s->prior = p->prior

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

D.s->next = p ; s->prior = p->prior ;p->prior->next = s ; p->prior = s 20 .如果最常用的操

作是取第i个结点及其前驱,则采用_D_存储方式最节省时间。

A .单链表

B .双链表

C .单循环链表

D .顺序表

21.在一个具有n 个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是 B Q

A . O (1)

B . O (n)

C . O (n2)

D . O ( nlog2n)

22.在一个长度为n (n>1)的单链表上,设有头和尾两个指针,执行B操作与链表的长度有关。

A .删除单链表中的第一个元素

B.删除单链表中的最后一个元素

C.在单链表第一个元素前插入一个新元素

D.在单链表最后一个元素后插入一个新元素

23?与单链表相比,双链表的优点之一是

A ?插入、删除操作更简单

B.可以进行随机访问

C.可以省略表头指针或表尾指针

D.顺序访问相邻结点更灵活

24 ?如果对线性表的操作只有两种,即删除第一个元素,在最后一个元素的后面插入新元素,则最好使用

B 。

A ?只有表头指针没有表尾指针的循环单链表

B ?只有表尾指针没有表头指针的循环单链表

C.非循环双链表

D?循环双链表

25?在长度为n的顺序表的第i个位置上插入一个元素(1 < i w)+元素的移动次数为:A_。

A ?n —i + 1

B ?n —i

C ?i

D ?i -1

26 ?对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为

A .顺序表

B ?用头指针表示的循环单链表

C.用尾指针表示的循环单链表 D .单链表

27?下述哪一条是顺序存储结构的优点?。

A插入运算方便B可方便地用于各种逻辑结构的存储表示

C 存储密度大D删除运算方便

28.下面关于线性表的叙述中,错误的是哪一个?

A线性表采用顺序存储,必须占用一片连续的存储单元

B线性表采用顺序存储,便于进行插入和删除操作。

C线性表采用链式存储,不必占用一片连续的存储单元

D线性表采用链式存储,便于进行插入和删除操作。

29.线性表是具有n个B的有限序列。

A ?字符

B ?数据元素C.数据项 D .表元素

30.在n个结点的线性表的数组实现中,算法的时间复杂度是

O (1)的操作是A

A .访问第i( 1<=i<=n )个结点和求第i个结点的直接前驱(1

B .在第i (1<=i<=n )个结点后插入一个新结点

C .删除第i (1<=i<=n )个结点

D .以上都不对

31.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为

C o

2

A . 0(0)

B . O(1)

C . O(n)

D . O(n )

32?对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为 C o

A . O(n) O(n)

B . O(n) O(1)

C . O(1) O(n)

D . O(1) O(1)

33.线性表(a1,a2, , ,an)以链式方式存储,访问第i位置元素的时间复杂度为 C 。

2

A . O(0)

B . O(1)

C . O(n)

D . O(n )

34.单链表中,增加一个头结点的目的是为了_C_ o

A.使单链表至少有一个结点B .标识表结点中首结点的位置

C.方面运算的实现 D .说明单链表是线性表的链式存储

35.在单链表指针为p的结点之后插入指针为s的结点,正确的操作是 B o

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

B . s->next=p->next ; p->next=s;

C . p->next=s;

p->next=s->next D . p->next=s->next ; p->next=s

36.线性表的顺序存储结构是一种_A_ o

A.随机存取的存储结构 B .顺序存取的存储结构

C.索引存取的存储结构

D. Hash存取的存储结构

37.栈的特点是 B ,队列的特点是卫」o

A.先进先出 B .先进后出

38?栈和队列的共同点是 _C_。

A ?都是先进后出

B ?都是先进先出

C .只允许在端点处插入和删除元素

D .没有共同点 39.

—个栈的进栈序列是 a ,b ,c ,d ,e ,则栈的不可能的输出序列是 A . edcba B . decba C . dceab D . abcde

40.

设有一个栈,元素依次进栈的顺序为 A 、B 、C 、D 、E 。下列_C

A . A,B,C,D,E

B . B,C,D,E,A

C . E,A,B,C,

D D . E,D,C,B,A

41. 以下_B_不是队列的基本运算?

A .从队尾插入一个新元素

B .从队列中删除第i 个元素

C .判断一个队列是否为空

D .读取队头元素的值

42. 若已知一个栈的进栈序列是 1 , 2, 3,, n ,其输出序列为 p1, p2,

C _ ° A . i B . n — i C . n — i + 1

D .不确定

43 .判定一个顺序栈 st (最多元素为 MaxSize )为空的条件是_B

C . st->top != MaxSize

D . st->top == MaxSize

45 . 一个队列的入队序列是 1, 2, 3, 4,则队列的输出序列是 _B

A . 4, 3, 2, 1

B . 1, 2, 3, 4

C . 1, 4, 3, 2

D . 3, 2, 4, 1

qu (最多元素为 MaxSize )为空的条件是 C ° A . qu->rear -qu->front ==MaxSize B . qu->rear -qu->front -1==MaxSize 是不可能的出栈序列。 p3, , , pn ,若 p1= n ,贝U pi 为

A . st->top != -1

B . st->top == -1

C . st->top != MaxSize

D . st->top == MaxSize

44 .判定一个顺序栈 st (最多元素为 MaxSize )为满的条件是_D

A . st->top != -1

B . st->top == -1

46 .判定一个循环队列

相关文档