【数据结构】——期末复习题题库(10)

简介: 【数据结构】——期末复习题题库(10)

🎯问题:

一. 单选题(共10题,100分)

1. (单选题)下面关于哈希(Hash,杂凑)查找的说法正确的是_______。

A. 若需在哈希表中删去一个元素,不管用何种方法解决冲突都只要简单

B. 哈希函数构造的越复杂越好,因为这样随机性好,冲突小

C. 除留余数法是所有哈希函数中最好的

D. 不存在特别好与坏的哈希函数,要视情况而定

2. (单选题)如果要求一个线性表既能较快的查找,又能适应动态变化的要求,最好采用(    )查找法。

A. 折半查找

B. 哈希查找

C. 顺序查找

D. 分块查找

3. (单选题)对具有n个元素的有序表采用顺序查找,若查找每个元素的概率相同,则平均查找长度为(          )。

A. (n-1)/2

B. (n+1)/2

C. n

D. n/2

4. (单选题)哈希表的地址区间为0~16,哈希函数为H(K)=Kmod 17。采用线性探查法处理冲突,并将关键字序列26,25,72,38,8,18,59依次存储到哈希表中,元素59存放在哈希表中的地址是(     )。

A. 14

B. 11

C. 12

D. 9

5. (单选题)在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0右孩子的平衡因子为1,则应作(   )型调整以使其平衡。

A. LR

B. RR

C. LL

D. RL

6. (单选题)当采用分块查找时,数据的组织方式为(       )。

A. 数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块

B. 数据分成若干块,每块内数据有序

C. 数据分成若干块,每块(除最后一块外)中数据个数需要相同

D. 数据分成若干块,每块内数据有序,每块内最大或(最小)的数据组成索引块

7. (单选题)假定有k个关键字互为同义词,若用线性探测法把这k个关键字存入散列表中,至少要进行多少次探测?

A. k+1次

B. k次

C. k-1次

D. k(k+1)/2次

8. (单选题)对于长度为18的顺序存储的有序表,若采用折半查找,则查找第15个元素的比较次数为(       )。

A. 4

B. 3

C. 6

D. 5

9. (单选题)使用二叉排序树的插入算法,对同一组记录关键字按两种不同顺序构造的二叉排序树(   )。

A. 一定是相同的

B. 可能是相同的

C. 深度一定是相同的

D. 一定是不同的

10. (单选题)由一棵空树构造二叉排序树,以下叙述正确的是(   )。

A. 最先插入的结点一定是根结点

B. 最后插入的结点一定是根结点

C. 介于中间值的结点一定是根结点

D. 中间插入的结点一定是根结点


🎯答案:

1-5:DDBBD


6-10:ADABA

相关文章
|
算法 存储 机器学习/深度学习
【数据结构】——期末复习题库(6)
【数据结构】——期末复习题库(6)
【数据结构】——期末复习题库(6)
|
存储 机器学习/深度学习 NoSQL
【数据结构】——期末复习题题库(8)
【数据结构】——期末复习题题库(8)
【数据结构】——期末复习题题库(8)
|
机器学习/深度学习 存储
【数据结构】——期末复习题题库(7)
【数据结构】——期末复习题题库(7)
【数据结构】——期末复习题题库(7)
|
搜索推荐
【数据结构】——期末复习题题库(11)
【数据结构】——期末复习题题库(11)
【数据结构】——期末复习题题库(11)
|
机器学习/深度学习 算法
【数据结构】——期末复习题题库(9)
【数据结构】——期末复习题题库(9)
【数据结构】——期末复习题题库(9)
|
存储 算法 搜索推荐
数据结构期末复习(fengkao课堂)
数据结构期末复习(fengkao课堂)
428 0
|
存储 算法 调度
数据结构期末复习(3)栈和队列
数据结构期末复习(3)栈和队列
1043 0
|
存储 算法
非递归实现后序遍历时,如何避免栈溢出?
后序遍历的递归实现和非递归实现各有优缺点,在实际应用中需要根据具体的问题需求、二叉树的特点以及性能和空间的限制等因素来选择合适的实现方式。
323 59
|
7月前
|
编译器 C语言 C++
栈区的非法访问导致的死循环(x64)
这段内容主要分析了一段C语言代码在VS2022中形成死循环的原因,涉及栈区内存布局和数组越界问题。代码中`arr[15]`越界访问,修改了变量`i`的值,导致`for`循环条件始终为真,形成死循环。原因是VS2022栈区从低地址到高地址分配内存,`arr`数组与`i`相邻,`arr[15]`恰好覆盖`i`的地址。而在VS2019中,栈区先分配高地址再分配低地址,因此相同代码表现不同。这说明编译器对栈区内存分配顺序的实现差异会导致程序行为不一致,需避免数组越界以确保代码健壮性。
156 0
栈区的非法访问导致的死循环(x64)
|
存储 C语言 C++
【C++数据结构——栈与队列】顺序栈的基本运算(头歌实践教学平台习题)【合集】
本关任务:编写一个程序实现顺序栈的基本运算。开始你的任务吧,祝你成功!​ 相关知识 初始化栈 销毁栈 判断栈是否为空 进栈 出栈 取栈顶元素 1.初始化栈 概念:初始化栈是为栈的使用做准备,包括分配内存空间(如果是动态分配)和设置栈的初始状态。栈有顺序栈和链式栈两种常见形式。对于顺序栈,通常需要定义一个数组来存储栈元素,并设置一个变量来记录栈顶位置;对于链式栈,需要定义节点结构,包含数据域和指针域,同时初始化栈顶指针。 示例(顺序栈): 以下是一个简单的顺序栈初始化示例,假设用C语言实现,栈中存储
574 77

热门文章

最新文章