《算法与数据结构》模拟试题5--答案.doc

《算法与数据结构》模拟试题5--答案.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《算法与数据结构》模拟试题5(参考答案) 一、填空题(每小题2分,共18分) 1、 线性结构 树形结构 图(或网)状结构 2、 时间复杂度 空间复杂度 3、 物理上的相邻 指针 4、 操作受限 后进先出(先进后出) 5、 1340 6、左子树 右子树 7、 顶点数 对称矩阵 8、 顺序存储且有序 散列存储 9、索引 散列 二、单项选择题(请将答案写在题目后的括号中。每题2分,共18分) 题号 1 2 3 4 5 6 7 8 9 答案 A C D B D D B C A 1001940 100 19 40 21 2 5 3 11 6 7 17 10 28 60 32 1、 解:所构造的Huffman树如下图所示。 WPL=(19+21+32)×2+(6+7+10)×4+(2+3)×5 =261 2、 解:该网的邻接链表如下图所示: 123 1 2 3 4 5 1 8 3 7 4 6 ∧ 0 8 2 4 3 10 4 11 ∧ 1 4 3 3 ∧ 1 10 2 3 0 7 4 3 ∧ 1 11 3 3 0 6 ∧ 0 1 2 3 4 从顶点V1出发的广度优先搜索的顶点序列是1→2→4→5→3,相应的生成树如下: 按Kruskal算法得到 按Kruskal算法得到的最小生成树 1 5 2 4 3 6 3 3 4 从顶点V1出发广度优先搜索生成树 1 5 2 4 3 6 8 4 7 3、 解:将关键字序列(15,21,13,7,4,9,25,19,23)生成二叉排序树T的过程如图(a)所示;删除13之后的二叉排序树T1如图(b)所示。 1521 15 21 15 13 21 15 7 13 21 15 4 7 13 21 15 9 4 7 13 21 15 25 9 4 7 13 21 15 图(a) 生成的二叉排序树T的过程23 图(a) 生成的二叉排序树T的过程 23 25 19 9 4 7 13 21 15 25 19 9 4 7 13 21 15 图(b) 删除13后 图(b) 删除13后的二叉排序树 25 23 19 4 7 9 21 15 4、 解:根据所给定的散列函数和处理冲突方法,得到的散列表结构如下: 01 0 1 2 3 4 5 6 7 8 9 10 ∧ ∧ ∧ ∧ 33 ∧ 56 25 ∧ 47 ∧ 71 ∧ 17 29 ∧ 8 ∧ 42 ∧ 95 69 成功查找的平均查找长度:ASL=(1×8+2×2+3×1)/11=17/11 5、 解:采用增量序列为5, 3, 1的希尔排序法,做非递减排序时的每一趟结果如下: 初始关键字:15 初始关键字:15, 29, 13, 40, 52, 9,3 8, 27, 17, 45 第一趟: 9, 29, 13, 17, 45, 15, 38, 27, 40, 52 第二趟: 9, 27, 13, 17, 29, 15, 38, 45, 40, 52 第三趟: 9, 13, 15, 17, 27, 29, 38, 40, 45, 52 四、算法填空(每空2分,共20分) 请在下面各算法的空白处填上相应语句实现算法功能。每个空白处只能填一个语句。 1、头插入法创建单链表,以整数的最大值(32767)作为输入结束,链表的头结点head作为返回值。 P= (LNode *)malloc(sizeof(LNode)) p–>next= head–>next 2、按满二叉树的方式对结点进行编号建立链式二叉树。对每个结点,输入结点i、结点ch。 p–>Lchild=p–>Rchild=NULL i%2==0 s[j]->Rchild=p 3、从顶点v出发,递归地深度优先搜索图G。 p=G->AdjList[v].firstarc DFS(G, p->adjvex) p=p->nextarc 4、 冒泡排序算法。 L->R[k].key>L->R[k+1].key flag==TRUE 五、编写算法(要求给出相应的数据结构说明,14分) 解:结点类型定义及算法如下: #define Max_Node_Num 50 Typedef struct BTNode { ElemType data ; /* 数据域,保存结点的值 */ struct BTNode *Lchild , *Rchild ; /* 指针域 */ }BTNode ; /* 结点的类型 */ Void count_node_num( BTNode *T) { BTNode *Stack[Max_Node_Num] ,*p=T, *q ; int top=0 , leaf_num

文档评论(0)

beoes + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档