- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构A卷集美大学试卷纸,数据结构试卷及答案,数据结构试卷,数据结构期末试卷,数据结构期末考试试卷,广工数据结构试卷,华科数据结构试卷,数据结构c语言版试卷,数据结构考试卷,数据结构英文试卷
集 美 大 学 诚 毅 学 院 试 卷 纸
2012 — 2013 学年 第 二 学期 课程名称 数据结构 试卷
卷别 A卷 适 用
学院、专业、年级 诚毅学院 软件工程专业
1191 1271 考试
方式 闭卷 √
开卷 □ 备注 答案请写在答题纸上,否则视为不得分。
一、问答题(共22分)
1-1(共4分)请看下面学生表的顺序表和链表存储,请说明它们的区别?
图1-1-1 学生表的顺序表 图1-1-2 学生表的链表
1-2(共4分)给出下列图1-2的二叉树的静态链表存储、顺序存储和二叉链表存储。
图1-2 二叉树
1-3(共4分)假设通信电文使用的字符集为{a,b,c,d,e,f,g,h},各字符在电文中出现的频度分别为:7,26,2,28,13,10,3,11,试为这8个字符设计哈夫曼编码。
要求:(1)画出你所构造的哈夫曼树(要求树中左孩子结点的权值不大于右孩子结点的权值);(2)按左分支为0和右分支为1的规则,分别写出与每个字符对应的哈夫曼编码。
1-4(共4分)已知二叉树的前序遍历序列是AEFBGCDHIKJ,中序遍历序列是EFAGBCHKIJD,画出此二叉树,并画出它的后序线索二叉树。
1-5(共6分)设待排序的排序码序列为{21, 25, 49, 25*, 16, 08}, 试写出使用堆排序方法每趟排序后的结果。(自行选择最大堆或最小堆排序)
二、程序题(共21分)
2-1(共5分)迷宫的主程序如下。给出下列迷宫2-1-1从起点到终点寻找路径的每一步中,往堆栈存放的内容,画出每一步堆栈的图,注意回溯那一段的堆栈图不要漏掉。提示:共13步画13个堆栈图。在每个位置寻找下一个方格的四个方位顺序图如图2-1-2。
图2-1-1迷宫 图2-1-2 方位顺序图
迷宫的主程序:
#include SeqStack.h //见2-3顺序栈的类定义,类的各方法定义省略。
#include iostream
using namespace std;
const int SZ = 36;
const int M = 6;
const int N=6;
struct Mazedata
{ int i; //当前方块的行号
int j; //当前方块的列号
int di; //di是下一可走方位的方位号
}; //定义栈单元的元素
int _tmain(int argc, _TCHAR* argv[])
{ int maze[M+1][N+1]={ /*M=6,N=6*/
{1,1,1,1,1,1},
{1,0,1,0,0,1}, //入口
{1,0,0,0,0,1},
{1,1,0,0,1,1},
{1,0,1,0,0,1}, //出口
{1,1,1,1,1,1}};
SeqStackMazedata mazetest;
//初始方块进栈
Mazedata x,y,z;
int di;
x.i=1;
x.j=1;
x.di=-1; //初始方向
mazetest.Push(x);
maze[1][1]=-1; //迷宫数组设置入口已经走过标志
int find;
while (!mazetest.IsEmpty()) //栈不空时循环
{ mazetest.getTop(x); //取栈顶
if (x.i==M-2 x.j==N-2) //找到了出口,输出路径
{ cout迷宫路径如下:endl;
coutmazetest;
return 0;
}
find=0;
while (x.di4 find==0) /*找下一个可走方块*/
{ di=x.di;
di++;
mazetest.getTop(x);
switch(di)
{
case 0:x.i=x.i; x.j=x.j+1;break;
case 1:x.i=x.i+1; x.j=x.j; break;
case 2:x.i=x.i; x.j=x.j-1; break;
case 3:x.i=x.
文档评论(0)