第一章 绪论
1.根据数据元素之间关系的不同特性,以下解释错误的是()。A
A.集合中任何两个结点之间都有逻辑关系但组织形式松散
B.线性结构中结点形成1对1的关系
C.树形结构具有分支、层次特性,其形态有点像自然界中的树
D.图状结构中的各个结点按逻辑关系互相缠绕,任何两个结点都可以邻接
2.关于逻辑结构,以下说法错误的是()B
A.逻辑结构是独立于计算机的
B.运算的定义与逻辑结构无关
C.同一逻辑结构可以采用不同的存储结构
D.一些表面上很不相同的数据可以有相同的逻辑结构
E.逻辑结构是数据组织的某种"本质性"的东西
3.下面关于算法的说法正确的是()。C
A.算法的时间效率取决于算法所花费的CPU时间
B.在算法设计中不能用牺牲空间代价来换取好的时间效率
C.算法必须具有有穷性、确定性等五个特性
D.通常用时空效率来衡量算法的优劣
4.下面关于算法说法错误的是()。D
A.计算机程序一定是算法
B.算法只能用计算机高级语言来描述
C.算法的可行性是指指令不能有二义性
D.以上几个都是错误的
5.程序段对换;for(i=n-1;i>=0;i-)
for(j=1;j<=n;j++)
if A[j]>A[j+1]
A[j]与A[j+1]对换;
其中n为正整数,则最后一行的语句频度在最坏情况下是()B
A.0(n) B.0(n²) c.0(n³) D.0(nlog₂n)
6.以下说法正确的是()。C
A.数据元素是数据的最小单位
B.数据项是数据的基本单位
C.原子类型不可再分解
D.数据项只能是原子类型
数据的最小单位是( A)。
(A) 数据项 (B) 数据类型 (C) 数据元素 (D) 数据变量
以下数据结构中哪一个是非线性结构?( D ) A. 队列 B. 栈 C. 线性表 D. 二叉树
1.通常从正确性、健壮性、可读性、时空效率等几方面评价算法的(包括程序)的质量。
2.对于给定的n个元素,可以构造出的逻辑结构有集合、线性、树形、图四种。
3.存储结构主要有顺序存储、链式存储、索引存储、散列存储四种。
4【填空】抽象数据类型的定义仅取决于它的一组逻辑特性,而与数据存储无关,即不论其内部结构如何变化,只要它的数学特征不变,都不影响其外部使用。
5.算法的五个特性:有穷、确定、可行、有零个或多个输入、有一个或多个输出。
数据结构有哪两种结构?逻辑结构、物理结构
第二章 线性表
1.线性表的顺序存储是线性表的一种最简单最直接的存储结构。
2.顺序存储和链式存储的区别:
顺序存储:
优点:访问速度快、存储空间利用率高、插入和删除操作简单
缺点:动态扩容困难、插入和删除效率低
顺序存储适合对数据进行频繁访问的场景,如数组、矩阵等
链式存储:
优点: 动态扩容容易、插入和删除灵活、空间利用率高
缺点: 访问速度慢、需要额外空间、插入和删除操作复杂
链式存储适合对数据进行频繁插入和删除的场景,如链表、树等
1.线性表是()。A
A.一个有限序列,可以为空 B.一个有限序列,不能为空
C.一个无限序列,可以为空 D.一个无序序列,不能为空
2.从一个具有n个结点的单链表中查找值为x结点,在查找成功情况下,需平均比较()个结点。D
A.n B.n/2 C.(n-1)/2 D.(n+1)/2
3.线性表采用链式存储时,其各元素存储地址()。D
A.必须是连续的 B.部分地址必须是连续的 C.一定是不连续的 D.连续与否均可以
4.用链表表示线性表的优点是()。C
A.便于随机存取 B.花费的存储空间较顺序存储少
C.便于插入和删除 D.数据元素的物理顺序与逻辑顺序相同
5.()插入、删除速度快,但不能随机存取。A
A.链接表 B.顺序表 C.顺序有序表 D.上述三项无法比较
6.若希望从链表中快速确定一个结点的前驱,则链表最好采用()方式。C
A.单链表 B.循环单链表 C.双向链表 D.任意
7.下面关于线性表的叙述错误的是()。B
A.线性表采用顺序存储,必须占用一片地址连续的单元
B.线性表采用顺序存储,便于进行插入和删除操作
C.线性表采用链式存储,不必占用一片地址连续的单元
D.线性表采用链式存储,便于进行插入和删除操作
8.带头结点的单链表head为空的判定条件是()。B
A.head==NULL B.head->next==NULL C.head->next==head D.head!=NULL
9.若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间.D
A.单链表 B.仅有头指针的单循环链表 C.双链表 D.仅有尾指针的单循环链表
10.在循环双链表的P所指结点之后插入S所指结点的操作是()。D
D.s->prior=p; s->next=p->next; p->next->prior=s; p->next=s;
1.对于采用顺序存储结构的线性表,当随机插入一个数据元素时,平均移动表中n/2元素;删除一个数据元素时,平均移动表中(n-1)/2元素。
2.当对一个线性表经常进行的是插入和删除操作时,采用__链式___存储结构为宜。
3.当对一个线性表经常进行的是存取操作,而很少进行插入和删除操作时,最好采用___顺序__存储结构。
4.在一个长度为n的顺序存储结构的线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需向后移动__n-i+1___个元素。
5.从长度为n的采用顺序存储结构的线性表中删除第i个元素(1≤i≤n),需向前移动__n-i___个元素。
6.带头结点的单链表L中只有一个元素结点的条件是:_L->next->next==NULL__。
7.在具有n个结点有序单链表中插入一个新结点并仍然有序的时间复杂度为_O(n)__。
9.在单链表中设置头结点的作用是__不管单链表是否为空表,头结点的指针均不空,并使得对单链表的操作(如插入和删除)在各种情况下统一__。
10.对于一个具有n个结点的单链表,在已知的结点*p后插入一个新结点的时间复杂度为__O(1)__,在给定值为x的结点后插入一个新结点的时间复杂度为___O(n)__。
1.链表中的头结点仅起到标识的作用。×
2.顺序存储的线性表可以按序号随机存取。√
3.线性表采用链表存储时,存储空间可以是不连续的。√
4.顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。×
5.对任何数据结构,链式存储结构一定优于顺序存储结构。×
6.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。×
7.循环链表可以在尾部设置头指针。√
8.为了方便插入和删除,可以使用双向链表存放数据。√
9.<