应用题复习含解_第1页
应用题复习含解_第2页
应用题复习含解_第3页
应用题复习含解_第4页
应用题复习含解_第5页
已阅读5页,还剩7页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、、应用题1. 已知线性表的存储结构为顺序表,阅读下列算法,并回答问题:(1) 设线性表 L= (51, -9, -6, 39, 0, -11, 34, 70, -16),写出执行算法 f11(&L)后的 L状态; ( 2)简述算法 f11 的功能。void f11 (SeqList *L) int i,j;for (i=j=0;ilen; i+) if(L-elemi=0)if(i!=j)L-elemj=L-elemi;j+;L-len=j;【答案】(1) L=(51,39,0,34,70)(2) 删除顺序表中小于 0的数。2. 假设以带头结点的单链表表示线性表 ,阅读下列算法 f 22,并回

2、答问题 :(1) 设线性表为(a1, a2, a3, a4, a5, a6, a7 ),写出执行算法f22后的线性表;(2) 简述算法f22的功能。void fun(LNode *L)/L为带头结点单链表的头指针P =L;while (p &p - next)q = p- next;p- next =q- next;p =q - next;free(q);【答案】( 1 ) (a 2,a 4,a 6)(2) 删除单链表中数据结点序号为奇数的那些结点。3假设以数组seqn m存放循环队列的元素,设变量rear和quelen分别指示循环队列中队尾元素的位置和元素的个数。(1) 写出队满的条件表达式

3、;(2) 写出队空的条件表达式;设m=50,rear=19,quelen=25,求队头元素的位置;(4)写出一般情况下队头元素位置的表达式。【答案】(1)quele n=m quele n=045(4)fro nt=(rear-quele n+1+m)%m4. 假设以数组seqn : m 存放循环队列的元素,设变量front和rear分别指示循环队列中队头元素的位置和队尾元素的位置。(1) 写出队满的条件表达式;(2) 写出队空的条件表达式;设m=40,rear=13,front=19,求队列的元素的个数 quelen ;(4)写出一般情况下元素的个数的表达式。【答案】(1) (rear+1)

4、%m=fro nt(2) rear=fro nt(3) 34(4) quele n=(rear-fro ntm)%m5. 假设有一个如下图的8X 8矩阵,矩阵元素都是整型量(次对角线以上的元素都是0)。若将上述矩阵中次对角线及其以下的元素按行优先压缩存储在一维数组B中,请回答下列问题:(1) B数组的体积至少是多少 ?(2) 若a18存储在B0中,a56存储在Bk中,则k值为多少?(1)(2)Ua28【答案】(1) 36(2) 136阅读下列算法,并回答问题:f33(1) Q、Q1和Q2都是队列结构,设队列 Q= (1 , 0, -5, 2, -4, -6, 9),其中1为队头元素,写出执行(

5、&Q,&Q1,&Q2)之后队列Q、Q1和Q2的状态;(2) 简述算法f33的功能。(注:lnitQueue、EnQueue、DeQueue和QueueEmpty分别是队列初始化、入列、出队和判队空的操作)void f31 (Queue*Q, Queue*Q1, Queue*Q2) int e;Ini tQueue (Q1);Ini tQueue (Q2);while (!QueueEmpty (Q) e=DeQueue (Q);if (e=0) En Queue (Q1,e);else En Queue (Q2,e)【答案】(1) Q=() Q1=(1,0,2,9) q2=(-5,-4,-6)

6、(2) 将C队列中的数据全部出队;不小于 0的进Q1,否则进Q2。7. 已知二叉树如右图所示。(1) 画出该二叉树的二叉链表;(2) 分别写出该二叉树的先根、中根和后根遍历序列。【答案】(1) 二叉链表:(2 )先根遍历序列: ABDCEGF 中根遍历序列:DBAEGCF 后根遍历序列:DBGEFCA8、假设一棵二叉树的先根遍历序列为 ABCDEFQH中根遍历序列为 CDBEGFHA (1)画出该二叉树;【答案】(1)二叉树(2)写出后根遍历序列。(2)后根遍历序列:DCGHFEBA9、假设一棵二叉树的中根遍历序列为DGBEACHFI后根遍历序列为 GDEBHIFCA(1)画出该二叉树;(2)

7、写出先根遍历序列。【答案】(1)二叉树:(2)先根遍历序列: ABDGECFHIA , D, G, H , M S, T,每个字符的使用频率分别为 3 , 7, 18 , 2 , 6 ,(按照每个结点的左子树根结点的权小于等于右子树根结点的权的次序构10. 假设一棵二叉树的层次遍历序列为ABCDEFGHI中根遍历序列为 DHBEAFCIG(1)画出该二叉树;(2)写出先根和后根遍历序列。【答案】(1 )二叉树:(2 )先根遍历序列: ABDHECFGI 后根遍历序列:HDEBFIGCA11设某通讯系统仅用七个英文字符10, 14。请画出对应的哈夫曼编码树 造),并求出每个字符的哈夫曼编码。【答

8、案】哈夫曼编码ADGHMST00011001100000011010112. 假设通信电文使用的字符集为 S , T, B, F, C,字符的哈夫曼编码依次为:011, 10 , 00, 010和11。(1)请根据哈夫曼编码画出此哈夫曼树,并在叶子结点中标注相应字符;若这些字符在电文中出现的频度分别为:4, 7, 5, 2和9,求出电文的总长度。【答案】(1)编码哈夫曼树电文的总长度=4*3+7*2+5*2+2*3+9*2=6013、已知一个有向图如右图所示。(1) 试画出它的邻接表。(表结点按顶点编号递减排列)(2) 分别求出从V1出发按深度优先搜索和广度优先搜索算法遍历得到的顶点序列。 【

9、答案】(1)深度优先搜索序列:v1 , v 4, v 3 , v 5, v 2广度优先搜索序列:v1, v 4 , v 3, v 2 , v 514、已知一个AO网如右图所示。(1)试画出它的邻接链表。(表结点按顶点编号递减排列)试写出按照拓扌卜排序算法得到的拓扑序列。【答案】(1)(2 ) v2,v 5,v 1 ,v 3,v 6,v 415、请用普里姆算法(从顶点V3开始)和克鲁斯卡尔算法构造下图所示网络的最小生成树,按照并入最小生成树 中边的次序填写下表,并画出最小生成树。始点终占八、权值次序 12345【答案】(1 )普里姆算法构造过程:最小生成树:始点V3V1V3V2V2终占二八、V1

10、V4V2V5V6权值121416810次序 12345(2)克鲁斯卡尔算法构造过程:始点V2V2V3V1V3终占二八、V5V6V1V4V2权值810121416次序 12345最小生成树:16、设关键字序列(17,8,13,25,24,16,3,19,1),写出用下列方法排序时,第一趟结束时关键字的排列状态。(1)冒泡排序(2)希尔排序(d1=4)( 3 )快速排序【答案】(1)冒泡排序(8,13,17,24,16,3,19,1,25)(2)希尔排序(d1=4)( 1, 8,3,19,17,16,13,25,24)(3)快速排序(1,8,13,3,16)17(24,19,25)17、对有序表1

11、2,24,30,46,52,61,70,79,83 进行折半查找方法查找,(1 )求出查找24和83时所需比较的次数;(2)画出判定树;(3)求ASL和MSL。【答案】(1)24比较2次;83比较4次判定树:(3)ASL=(1+4+12+8)/9=25/9=2.78MSL=418.已知一组数据元素为(68, 21 , 95, 71, 14, 57, 28, 33, 80),要求:(1) 试从空树开始画出按元素排列顺序输入而生成的一棵二叉排序树;(2) 画出删除结点68后的二叉排序树。【答案】(1)二叉排序树:68后的二叉排序树:或:19.选取哈希函数为H(K)=K % 7。用线性探测的开放地址

12、法处理冲突。试在08的散列地址空间中对关键字(1)哈希表:01234567850722519483268比较次数:1111 14 4序列25,72,48,19,32,50,68构造哈希表,并求出等概率下查找成功的平均查找长度。【答案】(2) ASd竺720. 下列是一棵五阶B-树,依次执行以下两步操作,画出每一步执行后所得到的B-树形。(1)插入n;(2)删除e。(2 )删除结点【答案】(1)插入n:删除e:21. 已知关键字序列为:(70,31,52,41,88,12,27,66)哈希表长为 9,哈希函数为:H (k) = k %9,用链地址法处理冲突,试构造哈希表,并求等概率下查找成功的平

13、均查找长度。【答案】(1)哈希表:01234567827 A12311 41A66 AI 52 )I| - 70一 88AASL5*1 2*2 1*38生1.5【答案】还原后的森林:J第三棵树的前序序列 GHIJ ;后序序列HJIG23.假设一棵树的先根序列为 ABCEFIJGHKD后根序列为BEIJFGKHCDA请画出该树。 【答案】所以可先得到的(1)因为树的先根和后根遍历序列分别与其转换后对应的二叉树的先根和中根遍历序列相同,(2)根据树与二叉树的转换规则,可得到树如下图所示:19324858220123456789101112其散列函数为h(key)=key%13,处理冲突的方法为双重散列法,探测序列为: hi=(h(key)+i *h1(key)%m i =1,,m 1其中h1(key)=key%11+1回答下列问题:(1) 对表中关键字19, 32和22进行查找时,所需进行的比较次数各为多少?(2) 该散列表在等概率查找时查找成功的平均查找长度为多少?【答案】(1)对关键字19, 32和22进行查找的比较次数为2、1、3;(2)平均查找长度 ASL2 112 3955H(32)=3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论