- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《算法与数据结构》模拟试题5--答案.
《算法与数据结构》模拟试题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
三、分析题(每题6分,共30分)
1、 解:所构造的Huffman树如下图所示。
WPL=(19+21+32)×2+(6+7+10)×4+(2+3)×5
=261
2、 解:该网的邻接链表如下图所示:
从顶点V1出发的广度优先搜索的顶点序列是1→2→4→5→3,相应的生成树如下:
3、 解:将关键字序列(15,21,13,7,4,9,25,19,)T的过程如图(a)所示;删除13之后的二叉排序树T1如图(b)所示。
4、 解:根据所给定的散列函数和处理冲突方法,得到的散列表结构如下:
成功查找的平均查找长度:ASL=(1×8+2×2+3×1)/11=17/11
5、 解:采用增量序列为5, 3, 1的希尔排序法,做非递减排序时的每一趟结果如下:
四、算法填空(每空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].keyL-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 , num1=0 ;
if (T==NULL) printf(“The Binary Tree is Empty!\n”) ;
else { do
{ if ( !(p-Lchild!=NULL p-Rchild!=NULL) )
{ if (p-Lchild==NULL p-Rchild==NULL) leaf_num++ ;
else num1++ ; }
q=p-Rchild ;
if ( q!=NULL ) stack[++top]=q ;
p=p-Lchild ;
if (p==NULL) { p=stack[top] ; top-- ; }
}
while (p!=NULL) ;
printf(“度为1和0的结点数分别是: %d, %d\n”, num1,leaf_num) ;
}
}
1
100
19
40
21
2
5
3
11
6
7
17
10
28
60
32
1
2
3
4
5
1
8
3
7
4
6
∧
0
8
2
4
3
10
4
原创力文档


文档评论(0)