数据结构与算法(习题)
第一章 绪论
2021.11.16 -> 此时已学完 绪论、算法复杂度、线性表、树、图
-
从逻辑上可以把数据结构分为( )两大类。
A. 动态结构、静态结构
B. 顺序结构、链式结构
C. 线性结构、非线性结构
D. 初等结构、构造型结构 -
数据结构的抽象操作的定义与具体实现有关。( )
A. 对
B. 错 -
在一个以 h 为头的单循环链中,p 指针指向链尾的条件是( )。
A. p->next=h
B. p->next=NULL
C. p->next->next=h
D. p->data=-1
第二章 线性表
- 下述哪一条是顺序存储结构的优点?( )
A. 存储密度大
B. 插入运算方便
C. 删除运算方便
D. 可方便地用于各种逻辑结构的存储表示 - 链表不具有的特点是( )。
A. 插入、删除不需要移动元素
B. 可随机访问任一元素
C. 不必事先估计存储空间
D. 所需空间与线性长度成正比 - 在一个以 h 为头的单循环链中,p 指针指向链尾的条件是( )。
A. p->next=h
B. p->next=NULL
C. p->next->next=h
D. p->data=-1 - 在单链表指针为 p 的结点之后插入指针为 s 的结点,正确的操作是:( )。
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; - 对于一个头指针为 head 的带头结点的单链表,判定该表为空表的条件是( )。
A. head == NULL
B. head→next == NULL
C. head→next == head
D. head! = NULL - (判断题)线性表的特点是每个元素都有一个前驱和一个后继。( )
- (判断题)为了很方便的插入和删除数据,可以使用双向链表存放数据。( )
- (判断题)所谓静态链表就是一直不发生变化的链表。( )
第三章 栈和队列
2021.10.3
-
有六个元素 6,5,4,3,2,1 的顺序进栈,下列( )不是合法的出栈序列?
A
5 4 3 6 1 2
B4 5 3 1 2 6
C3 4 6 5 2 1
D2 3 4 1 5 6
-
在作进栈运算时,应先判别栈是否为( )。
A 空
B 满
C 上溢
D 下溢 -
栈在( )中应用。
A 递归调用
B 子程序调用
C 表达式求值
D A,B,C -
表达式 a(b+c)-d 的后缀表达式是( )。*
A
abcd*+-
Babc+*d-
Cabc*+d-
D+*abcd
-
若用一个大小为 6 的数组来实现循环队列,且当前 rear 和 front 的值分别为 0 和 3,当从队列中删除一个元素,再加入两个元素后,rear 和 front 的值分别为( )?
A 1 和 5
B 2 和 4
C 4 和 2
D 5 和 1 -
栈和队列的共同点是( )。
A 都是先进先出
B 都是先进后出
C 只允许在端点处插入和删除元素
D 没有共同点 -
循环队列 A[0…m-1]存放其元素值,用 front 和 rear 分别表示队头和队尾,则当前队列中的元素数是( )。
A
(rear-front+m)%m
Brear-front+1
Crear-front-1
Drear-front
-
(判断题) 循环队列通常用指针来实现队列的头尾相接。( )
-
(判断题)循环队列也存在空间溢出问题。( )
-
(判断题) 通常使用队列来处理函数或过程的调用。( )
-
(判断题)栈和队列的存储方式,既可以是顺序方式,又可以是链式方式。
-
(判断题)栈是实现过程和函数等子程序所必需的结构。( )
第四章 数组
2021.10.17
-
设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为( )
A. 13
B. 33
C. 18
D. 40 -
设二维数组 A[1… m,1… n](即 m 行 n 列)按行存储在数组 B[1… m*n]中,则二维数组元素 A[i,j]在一维数组 B 中的下标为( )。
A. (i-1)n+j
B. (i-1)n+j-1
C. i(j-1)
D. jm+i-1 -
对稀疏矩阵进行压缩存储目的是( )。
A. 便于进行矩阵运算
B. 便于输入和输出
C. 节省存储空间
D. 降低运算的时间复杂度 -
A[N,N]是对称矩阵,将下三角(包括对角线)元素以行序为主序存储到一维数组 T[1…N(N+1)/2]中,则任一上三角元素 a[i][j](1<=i<=j)在T中的下标为:( )。
A. i(i-1)/2+j
B. j(j-1)/2+i
C. i(j-i)/2+1
D. j(i-1)/2+1 -
(判断题)稀疏矩阵压缩存储后,必会失去随机存取功能。( )
-
写出下面稀疏矩阵的三元组顺序表和十字链表表示。
第五章 树
- 在下述结论中,正确的是( )。
①只有一个结点的二叉树的度为0; ②二叉树的度为2; ③二叉树的左右子树可任意交换;
④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。A. ①、②、③
B. ②、③、④
C. ②、④
D. ①、④ - 若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( )。
A. 9
B. 11
C. 15
D. 不确定 - 设给定权值总数有n 个,其哈夫曼树的结点总数为( )。
A. 不确定
B. 2n
C. 2n+1
D. 2n-1 - 一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有( )结点。
A. 2h
B. 2h-1
C. 2h+1
D. h+1 - 一棵树高为K的完全二叉树至少有( )个结点。
A. 2k –1
B. 2k-1 –1
C. 2k-1
D. 2k - 树的后根遍历序列等同于该树对应的二叉树的( )。
A. 先序序列
B. 中序序列
C. 后序序列 - 已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为( )。
A. CBEFDA
B. FEDCBA
C. CBEDFA
D. 不定 - 下面的说法中正确的是( )。
①任何一棵二叉树的叶子结点在三种遍历中的相对次序不变;
②按二叉树定义,具有三个结点的二叉树共有6种。A. ①②
B. ①
C. ②
D. ①、②都错 - 一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足( )。
A. 所有的结点均无左孩子
B. 所有的结点均无右孩子
C. 只有一个叶子结点
D. 是任意一棵二叉树 - 二叉树的第i层上最多含有结点数为( )。
- 请按指定的方式画出下图中树的各种存储结构:
- 将下图所示的森林转换成二叉树
- 假定用于通信的电文由8个字符A、B、C、D、E、F、G、H组成,各字母在电文中出现的概率为5%、25%、4%、7%、9%、12%、30%、8%,试为这8个字母设计哈夫曼编码。
第六章 图
- 若一个有向图的邻接距阵中,主对角线以下的元素均为零,则该图的拓扑有序序列( )。
A. 存在
B. 不存在 - 下面关于求关键路径的说法不正确的是( )。
A. 求关键路径是以拓扑排序为基础的
B. 一个事件的最早开始时间同以该事件为尾的弧的活动最早开始时间相同
C. 一个事件的最迟开始时间为以该事件为尾的弧的活动最迟开始时间与该活动的持续时间的差
D. 关键活动一定位于关键路径上
答案
第一章
- C
- B
第二章
- A
在数据结构中,存储密度:结点数据本身所占的存储量和整个结点结构所占的存储量之比。
存储密度 = (结点数据本身所占的存储量)/(结点结构所占的存储总量)
- B
- A
- B
- B
- 错 线性表中的第一个结点只有一个后继,最后一个结点只有一个前驱
- 对
- 错
第三章
- C
- B
- D
- B
- B
- C
- A
- 错
- 对
- 错
- 对
- 对
第四章
- B
- A (数组B从1开始)
- C
- B
- 对
第五章
-
D
-
B
《大话数据结构 p170》
-
D
-
B
-
C
-
B
-
A
-
B
-
C
-
C
12.
13.
第六章
- A
- C