《数据结构》习题集 第1章 绪论
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》练习题
第1章绪论
一、单项选择题。
1.在数据结构中,数据的基本单位是_____ ____。
A. 数据项
B. 数据类型
C. 数据元素
D. 数据变量2.数据结构中数据元素之间的逻辑关系被称为__ ____。
A. 数据的存储结构
B. 数据的基本操作
C. 程序的算法
D. 数据的逻
辑结构
3.在数据结构中,与所使用计算机无关的是数据的____ ___。
A. 存储结构
B. 逻辑和物理结构
C. 逻辑结构
D. 物理结构
4.在链式存储结构中,数据之间的关系是通过____ ____体现的。
A. 数据在内存的相对位置
B. 指示数据元素的指针
C. 数据的存储地址
D. 指针
5.计算算法的时间复杂度是属于一种____ ___。
A. 事前统计的方法
B. 事前分析估算的方法
C. 事后统计的方法
D. 事后分析估算的方法
6.在对算法的时间复杂度进行估计的时候,下列最佳的时间复杂度是____ __。
A. n2
B. nlogn
C. n
D. logn
7.设使用某算法对n个元素进行处理,所需的时间是T(n)=100nlog2n+200n+2000,则该算法的渐近时间复杂度为____ ___。
A. O(1)
B. O(n)
C. O(200n)
D. O(nlog2n)
8.在数据结构中,从逻辑上可以把数据结构分成()。
A.动态结构和静态结构B.紧凑结构和非紧凑结构
C.线性结构和非线性结构D.内部结构和外部结构
9.与数据元素本身的形式、内容、相对位置、个数无关的是数据的()。
A.存储结构B.存储实现
C.逻辑结构D.运算实现
10通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着()。
A.数据具有同一特点
B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致
C.每个数据元素都一样
D.数据元素所包含的数据项的个数要相等
11.以下说法正确的是()。
A.数据元素是数据的最小单位
B.数据项是数据的基本单位
C.数据结构是带有结构的各数据项的集合
D.一些表面上很不相同的数据可以有相同的逻辑结构
12.以下与数据的存储结构无关的术语是()。
A.顺序队列 B. 链表 C. 有序表 D. 链栈
13.以下数据结构中,()是非线性数据结构
A.树B.字符串C.队D.栈
14.在决定选取任何类型的存储结构时,一般不多考虑______。
A.各节点的值如何
B.所用编程语言实现这种结构是否方便
C.对数据有哪些运算
D.节点个数的多少
15.数据采用链式存储结构时,要求______。
A.节点的最后一个数据域是指针类型
B.每个节点有多少个后继就设多少个指针域
C.所有节点占用一片连续的存储区域
D.每个节点占用一片连续的存储区域
16.数据的运算______。
A.必须用程序设计语言来描述
B.有算术运算和关系运算两大类
C.是根据存储结构来定义的效率
D.与采用何种存储结构有关
17._______ 不是算法的基本特性。
A.确定性
B.可行性
C.在规定的时间内完成
D.指令序列长度有限
18.以下说法中错误的是_______。
(1)原地工作算法的含义是指不需要任何额外的辅助空间
(2)在相同的问题规模下n下,时间复杂度为O(nlog2n)的算法在执行时间上总是优于时间复杂度为O()的算法
(3)时间复杂度通常是指最坏情况下,估计算法执行时间的一个上限
(4)一个算法的时间复杂度与实现算法的语言无关
A.(3)
B.(1)、(2)
C.(1)
D.(1)、(4)
19.下面程序的时间复杂为_______。
for(i=1,s=0;i<=n;i++){
t=1;
for(j=1;j<=i;j++)
t=t*j;
s=s+t;
}
A.O(n4)
B.O(n2)
C.O(n)
D.O(n3)
20.下面程序的时间复杂度为_______。
void fun( int n)
{
int i=1;
while (i<=n)
i=i*2;
}
A.O(n2)
B.O(n)
C.O(log2n)
D.O(nlog2n)
21.下面程序的时间复杂度为_______。
void fun( int n)
{
int i=1;
while (i<=n) i=i*3;
}
A.O(log3n)
B.O(n2)
C.O(nlog3n)
D.O(n)
二、判断题。
1.数据对象就是一组任意数据元素的集合。()
2.任何数据结构都具备3个基本运算:插入、删除、和查找。()
3.算法最终必须由计算机程序实现.()
三、解答题。
试分析下面各程序段的时间复杂度。
(1)x=90; y=100;
while(y>0)
if(x>100)
{x=x-10;y--;}
else x++;
(2)for (i=0; i for (j=0; j a[i][j]=0; (3)s=0; for( i=0; i for(j=0; j s+=B[i][j]; sum=s; (4)i=1; while(i<=n) i=i*3; (5)x=0; for(i=1; i for (j=1; j<=n-i; j++) x++; (6)x=n; //n>1 y=0; while(x≥(y+1)* (y+1)) y++;