《数据结构与算法》复习题
一、选择题。
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 。
A .各结点的值如何
B .结点个数的多少
C.对数据有哪些运算
D .所用的编程语言实现这种结构是否方便。
6.以下说法正确的是D。
.数据项是数据的基本单位
B.数据元素是数据的最小单位
C.数据结构是带结构的数据项的集合
D.一些表面上很不相同的数据可以有相同的逻辑结构
7.算法分析的目的是C,算法分析的两个主要方面是A。
( 1) A.找出数据结构的合理性B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进C.分析算法的易读性和文档性
( 2) A.空间复杂度和时间复杂度B.正确性和简明性
C.可读性和文档性D.数据复杂性和程序复杂性
8.下面程序段的时间复杂度是O(n 2)。
s =0;
for( I =0; i
for(j=0;j
s +=B[i][j];
sum = s ;
9.下面程序段的时间复杂度是O(n*m)。
for( i =0; i
for(j=0;j
A[i][j]= 0;
1
10.下面程序段的时间复杂度是O(log 3n)。
i = 0;
while ( i<=n )
i = i * 3 ;
11.在以下的叙述中,正确的是B。
.线性表的顺序存储结构优于链表存储结构
B.二维数组是其数据元素为线性表的线性表
C.栈的操作方式是先进先出
D.队列的操作方式是先进后出
12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着B 。
.数据元素具有同一特点
B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致C.每个数据元素都一样
D.数据元素所包含的数据项的个数要相等
13.链表不具备的特点是
A 。
A .可随机访问任一结点
B.插入删除不需要移动元素
C.不必事先估计存储空间
D.所需空间与其长度成正比
14.不带头结点的单链表
head 为空的判定条件是
A
。
A . head == NULL
B head->next ==NULL
C. head->next ==head
D head!=NULL
15.带头结点的单链表 head 为空的判定条件是
B
。
A . head == NULL
B head->next ==NULL
C. head->next ==head
D head!=NULL
16.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用
存储方式最节省运算时间。
A .单链表B.给出表头指针的单循环链表C.双链表D .带头结点的双循环链表
17.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是B。
A .单链表B.静态链表C.线性链表D.顺序存储结构
18.非空的循环单链表head 的尾结点(由p 所指向)满足C。
A . p->next == NULLB. p == NULL
C. p->next ==headD . p == head
19.在循环双链表的p 所指的结点之前插入s 所指结点的操作是D。
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
2
D. s->next = p ; s->prior = p->prior ;p->prior->next = s ; p->prior = s
20.如果最常用的操作是取第i 个结点及其前驱,则采用D存储方