一 选择题
1
解析:上面没有正确选项
层数从 0 开始算,深度=层数,高度从1开始算。
C项:在二叉树中,第 i 层上最多有 2 的 i 次幂个结点(i≥0)
2
解析:图的存储结构
3
解析:图
4
解析:查找
5
解析:答案选 D,感觉是B
6
B - 排序趟数也可能少于 n-1
二 简答题
1. 相比顺序存储结构,堆栈采用链式存储结构有什么好处?
堆栈采用顺序存储结构的缺点是堆栈满时会产生溢出,因此需要事先知道或估算栈的大小。如果空间设置过大,而堆栈实际存储的元素过少,则会造成空间浪费。采用链式存储结构可以动态的申请空间,有效地避免这种情况的发生。
2 如何根据给定的二叉排序树的前序遍历序列确定该二叉排序树?
参考:二叉搜索树
(1)特征:左 < 中 < 右
(2)前序遍历:根 - 左 - 右
二叉排序树前序遍历的第一个元素为第一个根结点,二叉排序树的左结点都小于根结点,右结点都大于根结点。
3 若 n 个关键字具有相同的散列函数值,并且采用线性探测再散列法处理散列冲突,则将这些关键字散列到一个初始为空的地址空间,需要进行多少次探测?请简要说明结论的由来。
至少要进行 0+1+2+3+...+(n-1) = n(n-1)/2 次探测。因为,散列表初始为空,第 1 次向散列表中插入关键字时无冲突,无须进行探测;第 2 次向散列表中插入关键字时出现冲突,需要探测 1 次;第 3 次向散列表中插入关键字时出现冲突,需要探测 2 次;以此类推,需要进行 n(n-1)/2 次探测。
4 使用插入排序法进行排序的过程中,每次向一个按值有序的子序列中插入一个新元素,并形成一个新的更大的按值有序子序列。请问:新元素的插入位置是否是它最终排序位置?为什么?
不一定。因为在排序的过程中可能还会有更小的元素插入到它的前面。
三 综合题
1
答案:删除数据域内容为 x 的链结点。
2
3
4
四 算法设计题