王道学习
第一章 绪论
1.1
3.A
数据的逻辑结构是从面向实际问题的角度出发的,只采用抽象表达方式,独立于存储结构,数据的存储方式有多种不同的选择;而数据的存储结构是逻辑结构在计算机上的映射,它不能独立于逻辑结构而存在。数据结构包括三个要素,缺一不可。
解:应该注意到,数据的运算也是数据结构的一个重要方面。
对于两种不同的数据结构,它们的逻辑结构和物理结构完全有可能相同。比如二叉树和二叉排序树,二叉排序树可以采用二叉树的逻辑表示和存储方式,前者通常用于表示层次关系,而后者通常用于排序和查找。虽然它们的运算都有建立树、插入结点、/删除结点和查找结点等功能,但对于二叉树和二叉排序树,这些运算的定义是不同的,以查找结点为例,二叉树的时间复杂度为O(n)而二叉排序树的时间复杂度为O(logn)。
解:线性表既可以用顺序存储方式实现,又可以用链式存储方式实现。在顺序存储方式下,在线性表中插入和删除元素,平均要移动近一半的元素,时间复杂度为O(n);而在链式存储方式下.插入和删除的时间复杂度都是O(1)。
1.2
第10题主要是判断递归的次数。当n=1时,没有递归;当n=2时,递归了1次;当n=4时,递归了2次。所以选C。
第16题可以采用举例的方法,当n=2时,sum++运行1次;当n=4时,sum++运行3次;当n=8时,sum++运行7次。所以选B
第二章 线性表
2.1
答案:B
线性表定义的要求为:相同数据类型、有限序列。选项C的元素个数是无穷个,错误;选项A集合中的元素没有前后驱关系,错误;选项D属于存储结构
2.2
第三章 栈、队列和数组
3.1
3.2
第8题可以考虑特殊情况:当队列中只剩下一个元素,考虑此情况就知道答案了。
第10题可以考虑特殊情况:当队列中只剩下一个元素。
第14题考考虑删除的方便性:如果队头在链尾和链中,出队时需要遍历链表;
第21题:rear有两种情况,第一种是rear指向当前的队尾元素;第二种是rear指向队尾元素的下一个位置。
3.3
3.4
第四章 串
4.2