数据结构练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
判断题
(一)
1.数据元素是数据最小单位。
错
2.数据对象就是一组数据元素的集合。
错
3.任何数据结构都具备三个基本运算:
插入、删除和查找。
错
4.数据对象是由有限个类型相同的数据元素构成的。
对
5.数据的逻辑结构与各数据元素在计算机中如何存储有关。
错
6.如果数据元素值发生改变,则数据的逻辑结构也随之改变。
错
7.逻辑结构相同的数据,可以采用多种不同的存储方法。
对
8.逻辑结构不相同的数据,必须采用不同的存储方法来储存。
错
9.数据的逻辑结构是指数据元素的各数据项之间的逻辑关系。
错
判断题
(二)
1.顺序存储方式只能用于存储线性结构。
错
2.数据元素是数据最小的单位。
错
3.数据结构是带有结构的数据元素的集合。
对
4.数据的逻辑结构是指各数据元素之间的逻辑关系。
对
5.数据结构、数据元素、数据项在计算机中的表示分别称为存储结构、节点和数据域。
对
6.数据的物理结构是指数据在计算机内的实际的存储形式。
对
第二章
判断题一
1.分配给单链表的内存单元地址必须是连续的。
错
2.与顺序表相比,在链表中顺序访问所有节点,其算法的效率比较低。
错
3.从长度为n的顺序表中删除任何一个元素,时间复杂度都是O(n)。
错
4.向顺序表中插入一个元素,平均要移动大约一半的元素。
对
5.凡是为空的单链表都是不含任何节点的。
错
6.如果单链表带有头结点,则插入操作永远不会改变头节点指针的值。
对
7.在循环单链表中,任何一个节点的指针域都不可能为空。
对
判断题二
1.顺序存储方式的特点是存储密度大且插入、删除运算效率高。
错
2.线性表的顺序存储结构优于链式存储结构。
错
3.顺序存储结构属于静态结构而链式存储结构属于动态结构。
对
4.由于顺序存储结构要求连续的存储区域,所以再存储管理上不够灵活。
对
5.对于单链表来说,只有从头节点开始才能扫描表中全部节点。
对
6.对于循环单链表来说,从表中任一节点出发都能扫描整个链表。
对
7.双链表的特点是很容易找任一节点的前驱和后继。
对
第三章
1.栈底元素是不能删除的元素。
错
2.顺序栈中元素值的大小是有序的。
错
3.在n个元素连续进栈后,他们的出栈顺序和进栈顺序一定正好相反。
对
4.栈顶元素和栈底元素有可能是同一元素。
对
5.若s[m]表示顺序栈的存储空间,则对栈的进栈、出栈操作最多只能进行m次。
错
6.栈是一种对进栈、出栈操作总次数作了限制的线性表。
错
7.对顺序栈进行进栈、出栈操作,不涉及元素的前、后移动问题。
对
8.空栈没有栈顶指针。
错
9.环形队列中有多少元素,可以根据队首指针和队尾指针的值来计算。
对
10.无论是顺序队列,还是链式队列,插入、删除运算的时间复杂度都是O
(1)。
对
11.队列若用不带头节点的非循环单链表来表示链式队列,则可以用“队首指针和队尾指针的值相等”作为空队标志。
错
12.栈和队列都是插入和删除操作受限的线性表。
对
13.栈和队列的存储方式既可以是顺序方式,也可以是链式方式。
对
14.环形队列也存在空间溢出的问题。
对
15.消除递归不一定需要使用栈。
对,也可用迭代
第四、五、六章
判断题
1.KMP算法的最大特点是指示主串的指针不需回溯。
对
2.任何递归算法都有递归出口。
对
3.递归算法的执行效率比功能相同的非递归算法的执行效率高。
错
4.递归算法不能转换成对应的非递归算法。
错
5.稀疏矩阵的特点是矩阵中的元素较少。
错
简答题
1.两个串相等的充分必要条件是什么?长度相同且对应位置字符相等
2.二维数组A[0…3][0…3]的元素起始地址是LOC(A [0][0])=1000,一个元素占用内存单元为2,则LOC(A[3][2])为多少。
(分别计算按行、列存储情况)按行存储:1000+[(3-0)×4+(2-0)]×2=1028
按列存储:1000+[(2-0)×4+(3-0)]×2=1022
上机操作题
1.顺序表:
已知线性表(a1,a2,…an)按顺序结构存储且每个元素为不相等的整数。
设计把所有奇数移到所有偶数前边的算法。
(要求时间少,辅助空间少)。
2.单链表:
编写算法将带头节点的单链表中值重复的节点删除,使所得的链表中各节点值不同。
3.栈和队列:
编程实现用两个栈模拟一个队列的算法。
4.递归:
编写程序,用递归算法实现n个整数之和。
5.稀疏矩阵:
稀疏矩阵压缩存储只存放行号、列号和非零值,用三元组顺序表表示。
请编写程序实现两个稀疏矩阵相加的算法。