【艾琪出品】《数据结构》【参考】

本文探讨了数据结构中的哈希表,重点介绍了装载因子小于1的情况,使用线性探测开放定址法处理冲突,并提供了按字母顺序输出哈希表关键字的算法。此外,还涵盖了快速排序的过程,详细描述了第一趟排序的序列变化。同时,文章涉及了二叉树的构造和转换,包括从先序和中序序列重建二叉树,以及通过后序和中序序列构建不同形态的二叉树。最后,讨论了链表的重组和二叉树节点左右子树的交换算法,以及森林到二叉树的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据结构

(一)    
已知某哈希表的装载因子小于1,哈希函数H(key)为关键字(标识符)的第一个字母在字母表中的序号,处理冲突的方法为线性探测开放定址法。试编写一个按第一个字母的顺序输出哈希表中所有关键字的算法。
(二)    
用标准C语言实现Hanoi塔问题
二、解答题(20分)
(一)    
设待排序记录的关键字序列为{46, 55, 13, 42, 94, 05, 17, 70}写出其第一趟快速排序过程。(要求写出每次交换后的序列,并且枢轴记录到位也算一次交换)

初始关键字:  46   55   13   42   94   05   17   70
1次交换后:
2次交换后:
3次交换后:
4次交换后:
5次交换后:
三、画图题(20分)
(一)    
将下面的森林变换成二叉树


第二组:
一、编程题(每小题30分,共60分)
(一)    
用标准C语言实现Hanoi塔问题

(二)    
1.设单链表中有仅三类字符的数据元素(大写字母、数字和其它字符),要求利用原单链表
中结点空间设计出三个单链表的算法,使每个单链表只包含同类字符。
2. 设计在链式存储结构上交换二叉树中所有结点左右子树的算法。 
二、解答题(20分)
(一)    
已知一棵二叉树的先序序列是ABCDEFGHIJK,中序序列是CDBGFEAHJIK,请构造出该二叉树。

三、画图题(20分)
(一)    
设有序顺序表中的元素依次为017, 094, 154, 170, 275,503, 509, 512, 553, 612, 677, 765, 897, 908。试画出对其进行折半搜索时的判定树, 并计算搜索成功的平均搜索长度和搜索不成功的平均搜索长度。


第三组:
一、编程题(每小题30分,共60分)

(一)    
1.设单链表中有仅三类字符的数据元素(大写字母、数字和其它字符),要求利用原单链表
中结点空间设计出三个单链表的算法,使每个单链表只包含同类字符。
2. 设计在链式存储结构上交换二叉树中所有结点左右子树的算法。 

(二)    
1.设有一组初始记录关键字序列(K1,K2,„,Kn),要求设计一个算法能够在O(n)的时间
复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于Ki,右半部分的每个关键字均大于等于Ki。 
2. 设有两个集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、B和C用链式存储结构表示。

二、解答题(20分)
(一)    
若二叉树中各结点的值均不相同,则由二叉树的前序序列和中序序列,或由其后序序列和中序序列均能唯一地确定一棵二叉树,但由前序序列和后序序列却不一定能唯一地确定一棵二叉树。
 (1)已知一棵二叉树的前序序列和中序序列分别为ABDGHCEFI和GDHBAECIF,请画出此二叉树。
 (2)已知一棵二叉树的在序序列和后序序列分别为BDCEAFHG和DECBHGFA,请画出此二叉树。
 (3)已知一棵二叉树的前序序列和后序序列分别为AB和BA,请画出这两棵不同的二叉树。


三、画图题(20分)
(一)    
某子系统在通信联络中只可能出现8种字符,其出现的概率分别为0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11试设计赫夫曼编码


第四组:
(一)    
已知某哈希表的装载因子小于1,哈希函数H(key)为关键字(标识符)的第一个字母在字母表中的序号,处理冲突的方法为线性探测开放定址法。试编写一个按第一个字母的顺序输出哈希表中所有关键字的算法。

(二)    设顺序表L是一个递增有序表,试写一算法,将x插入L中,并使L仍是一个有序表。

二、解答题(20分)

(一)    
写出下图所示的AOV网的可能拓扑序列,要求至少写出五个


三、画图题(20分)
(一)    
设有序顺序表中的元素依次为017, 094, 154, 170, 275,503, 509, 512, 553, 612, 677, 765, 897, 908。试画出对其进行折半搜索时的判定树, 并计算搜索成功的平均搜索长度和搜索不成功的平均搜索长度。


第五组:
一、编程题(每小题30分,共60分)
(一)    
对于二维整数数组A[m][n],对下列三种情况,分别编写相应的函数。
1.    求数组所有边缘元素的数值和。
int sum1(int A[M][N],int m ,int n)
{
2.求从A[0][0]开始的互不相邻的所有元素的和
注:一个元素的八个方向上的第一个元素均为相邻元素。
int sum2 (int A[M][N] , int m , int n)
{
3. 假定m=n,并为偶数,请分别计算正、反两条对角线上的元素值之和。
int sum3(int A[M][N] , int n)
{

(二)    
已知某哈希表的装载因子小于1,哈希函数H(key)为关键字(标识符)的第一个字母在字母表中的序号,处理冲突的方法为线性探测开放定址法。试编写一个按第一个字母的顺序输出哈希表中所有关键字的算法。

二、解答题(20分)
(一)    
设待排序记录的关键字序列为{46, 55, 13, 42, 94, 05, 17, 70}写出其第一趟快速排序过程。(要求写出每次交换后的序列,并且枢轴记录到位也算一次交换)

初始关键字:  46   55   13   42   94   05   17   70
1次交换后:
2次交换后:
3次交换后:
4次交换后:
5次交换后:

三、画图题(20分)
(一)    
已知二维数组表示的图的邻接矩阵如下图所示。试分别画出自顶点1出发进行遍历所得的深度优先生成树和广度优先生成树。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值