当前位置:文档之家› 数据结构复习题

数据结构复习题

一、绪论
1.基本概念
数据元素(基本单位)、数据项(最小单位)、数据结构(逻辑结构、存储结构、操作或运算)、逻辑结构(集合、线性、树、图或网)、存储结构(顺序存储、链式存储、索引、散列)、数据类型、抽象数据类型、算法的5个重要特性、算法设计的4个要求
2.时间复杂度
例6 i=0;k=0;
do
【k=k+10;i++;i++;】
while(i<n)
例7 x=n;y=0;
while(x>=(y+1)*(y+1))
y++;
例8 i=1;j=0;
while(i+j<=n)
【if(i>j) j++;
else i++;

例9 x=9;y=100;
while(y>0)
if(x>100)【x=x-10;y--;】
else x++;
例10 i=1;
while(i<=n)
i++;
例11 i=1;
while(i<=n)
i=i*2;
例12 i=s=0;
while(s<n)
【i++;
s+=i;

例13 for (i=0;i<=n;i++)
for (j=0;j<=m;j++)
a[i][j]=0;
例14 fact(int n)
【if(n<=1)
return 1;
else
return (n*fact(n-1));

二、线性表
1.等概率下顺序表插入与删除的平均移动次数
2.单链表、双向链表的插入与删除
3.静态链表
4.单链表、循环链表遍历一次的循环条件。

三、栈
1.基本概念
2.假定有三个元素A,B,C依次进栈,试写出所有可能的出栈序列
3.给入栈顺序,不可能的出栈顺序
4.顺序栈空、滿的条件、入栈、出栈操作
5.应用、中缀转后缀
6.循环队列空、滿的条件、入队列、出队列操作、队列元素个数的
求法
7.链队列的入、出
五、数组
一维二维地址
1.设有一个二维数组A[M][N],采用以行序为主序的存储方式,假设A[0][0]存放位置在5000,A[2][4]存放位置在5160,每个元素占2个单元,问数组A的每行占多少单元?A[4][5]存放在什么位置?
2.设二维数组A[7][7],按行优先顺序存储,每个元素占1个字节,设A[0][0]的存储地址为3020,则A[1][3]的存储地址为多少?如果该二维数组为对称矩阵,
则存储该数组共需多少字节?
3.设有一个二维数组A[m][n],采用以行序为主序的存储方式,假设A[0][0]存放位置在300,A[2][4]存放位置在340,每个元素占一个4个单元,问数组A 的每行占多少单元?A[4][6]存放在什么位置? 六、树与二叉树 1.基本概念与性质 2.存储结构
3.遍历二叉树、及由中、先序序列得二叉树
4.树、二叉树、森林的转换、遍历
5.哈夫曼树与编码
例1已知二叉树的先序遍历结点访问顺序是abdgcefh ,中序遍历的结点访问顺序
是dgbaechf
问:(1)请依据题中条件画出此二叉树 (2)写出按后序遍历的访问顺序(3)画出其二叉链表存储结构图
例2
将左图二叉树转换为森林,右图森林转换成一棵二叉树
例 3.哈夫曼树
与编码 假设电文由
ABCDE 五种字符组成,且它们的出现频率依次为8,4,1,6,7则若按权值小者为左孩子构造赫夫曼树,请画出赫夫曼树,并求出带全路径长度WPL 。

如表1所列的数据表给出了在一篇有19710个词的英文文章中最普通的9个单词的出现频度。

假定一篇正文仅由上述字符数据表中的词组成,那么它们的最佳编码是什么?(请写出详细求解过程)
七、图
1.基本概念、连通分量、生成树 2、存储结构,画邻接矩阵、邻接表
3. 遍历、最小生成树两种算法、拓扑排序、关键路径
例1.根据下面的网,回答下列问题:(1)此网的深度、广度优先遍历序列。

(2)采用普里姆算法、克鲁斯卡尔画出以A 为根结点的最小生成树。

(3)两种存储结构(4)并写出采用prim 算法从顶点A 开始构造最小生成树在构造过程中辅助数组中各分量值的变化。

2.已知有向图如下图所示,下列拓扑序列中正确的是( )。

(A ) V5 V2 V1 V4 V3 V6 V7 V8 (B ) V1 V2 V4 V6 V5 V3 V7 V8
(C ) V2 V1 V4 V6 V5 V3 V7 V8 (D ) V4 V2 V1 V6 V5 V3 V7 V8
3.AOE 网可用来估算工程的完成时间,顶点表示事件,弧表示活动。

对下面的AOE网,请完成: (1)求出该网的关键路径。

(2)求 e(a11) 和 vl(v8)
4.对下图所示的网给出:
(1)求出深度优先遍历序列(能按字母顺序的,按字母顺序排列)
(2)求出广度优先遍历序列(能按字母顺序的,按字母顺序排列)
5.有一有向图G=(V,A),其中:
V={v1,v2,v3,v4,v5,v6},A={<v1,v3>,<v2,v3>,<v1,v5>,<v1,v6>,<v3,v4>,<v4,v6> ,<v5,v4>,<v5,v6}。

(1)画出该有向图
九\检索
1.画出长度为10的有序表的折半查找的判定树,并求出查找关键字等概率时查
找成功的平均查找长度和查找不成功时的平均查找长度。

2.选取哈希函数H(k)=(3k)MOD11,用开放定址法处理冲突d1=H(k),
di=(di-1+(7*k)%10+1)%11 (i=2,3,……),试在0~10的散列地址空间中对关键字序列(22,41,53,46,30,13,01,67)构造哈希表,并求等概率时查找成功的平均查找长度。

3.设有一组关键字{13,23,24,46,60,38,44,41},采用哈希函数H(key)=key%11,
请分别采用开放定址法的线性探测再散列法解决冲突,试在0~10的散列空
间中对该关键字序列构造哈希表,并求出查找成功的平均查找长度。

(2)查找关键字为44需要几次比较,并写出比较过程。

(3)链地址法
4.设有一组关键字{13,23,24,46,60,38,44,41},装填因子0.8,用除留余数法构造哈希函数,平方探查法解决冲突,构造哈希表。

5.依据下列关键字序列{45,24,53,49,12,28,90,52,64}构成一棵二叉排序树。

(1)请画出此二叉排序树。

(2)若在二叉排序树中查找,则查找成功与查找不成功的平均查找长度分别是多少?
6.分块检索
十\排序
1.判断以下序列(49,38,65,97,76,13,27,51,55,4)是否为堆,如果不是,则把它调整为小顶堆。

2.已知序列{49,38,65,97,76,13,27,51,55,4 },请给出采用希尔排序法(d1=5,d2=3,d3=1)对该序列作升序排列时的每一趟的结果。

3.使用直接插入排序法,写出关键字序列{49,38,65,97,76,13,27,51,55,4}第3,4,5趟升序排序结果。

4.已知序列{49,38,65,97,76,13,27,51,55,4 },请给出采用快速排序法以第一个元素为枢轴,对该序列作降序排列时每一趟的结果。

相关主题