ImageVerifierCode 换一换
格式:DOC , 页数:12 ,大小:35.50KB ,
资源ID:1752042      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-1752042.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(2017年数据结构第三次作业.doc)为本站会员(文档投稿赚钱)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

2017年数据结构第三次作业.doc

1、第 3 次作业一、填空题(本大题共 30 分,共 10 小题,每小题 3 分)1. 具有 8 个顶点的无向图,边的总数最多为_。2. 树在计算机内的表示方式有 , , 。3. 设有一个 n 阶的下三角矩阵 A,如果按照行的顺序将下三角矩阵中的元素(包括对角线上元素)存放在 n(n+1)个连续的存储单元中,则 Aij与 A00之间有_个数据元素。4. 队列是限制插入只能在表的一端,而删除在表的另一端进行的线性表,其特点是_。5. 在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为_域和_域。6. 构造连通网最小生成树的两个典型算法是_。7. 在一个稀疏矩阵中,每个非零元素所

2、对应的三元组包括该元素的_、_和_三项。8. 已知一棵度为 3 的树有 2 个度为 1 的结点,3 个度为 2 的结点,4 个度为 3 的结点,则该树有 个叶子结点。9. 非空的单循环链表 head 的尾结点(由 p 指针所指)满足条件_。10. 在哈希文件中,处理冲突的方法通常有_、_ 、_和_四种。二、算法设计题(本大题共 20 分,共 2 小题,每小题 10 分)1. 回文是指正读反读均相同的字符序列,如“abba“和“abdba“均是回文,但“good“不是回文。试写一个算法判定给定的字符向量是否为回文。2. 编写一个算法将一个头结点指针为 pa 的单链表 A 分解成两个单链表 A 和

3、B,其头结点指针分别为 pa 和 pb,使得 A 链表中含有原链表 A 中序号为奇数的元素,而链表 B 中含有原链表 A 中序号为偶数的元素,且保持原来的相对顺序。三、简答题(本大题共 20 分,共 4 小题,每小题 5 分)1. 何时选用顺序表、何时选用链表作为线性表的存储结构为宜?2. 一棵度为 2 的树与一棵二叉树有何区别?3. 指出下述程序段的功能是什么? void Demo1( SeqStack *S, int m) / 设 DataType 为 int 型SeqStack T; inti;InitStack (while (! StackEmpty( S)if( i=Pop(S)

4、!=m) Push( while (! StackEmpty( Push(S,i);4. 给定集合15,3,14,2,6,9,16,17(1)(3 分)用表示外部结点,用表示内部结点,构造相应的 huffman树:(2) (2 分)计算它的带权路径长度:(3)(2 分)写出它的 huffman 编码:(4)(3 分)huffman 编码常用来译码,请用语言叙述写出其译码的过程。四、程序设计题(本大题共 30 分,共 2 小题,每小题 15 分)1. 以二叉链表为存储结构,写出求二叉树叶子总数的算法 2. 设线性表的 n 个结点定义为(a 0,a1,.an-1),重写顺序表上实现的插入算法:In

5、sertList 答案:一、填空题(30 分,共 10 题,每小题 3 分)1. 参考答案:28解题方案:评分标准:2. 参考答案:双亲链表表示法,孩子链表表示法,孩子兄弟表示法解题方案:评分标准:3. 参考答案:i(i+1)/2+j-1解题方案:评分标准:4. 参考答案:先进先出解题方案:评分标准:5. 参考答案:值(或 data), 子表指针(或 sublist)解题方案:评分标准:6. 参考答案:普里姆(prim)算法和克鲁斯卡尔(Kruskal)算法解题方案:评分标准:7. 参考答案:行号、列号、元素值解题方案:评分标准:8. 参考答案:12解题方案:评分标准:9. 参考答案:p-ne

6、xt=head 解题方案:评分标准:10. 参考答案:开放地址法、再哈希法、链地址法、建立一个公共溢出区解题方案:评分标准:二、算法设计题(20 分,共 2 题,每小题 10 分)1. 参考答案:算法可设计为:/以下为顺序栈的存储结构定义#define StackSize 100 /假定预分配的栈空间最多为 100 个元素typedef char DataType;/假定栈元素的数据类型为字符typedefstructDataType dataStackSize;int top;SeqStack; intIsHuiwen( char *t)/判断 t 字符向量是否为回文,若是,返回 1,否则返

7、回 0SeqStack s;inti , len;char temp;InitStack( len=strlen(t); /求向量长度for ( i=0; i#includetypedef int ElemType;typedef struct LNodeElemType data; /数据域struct LNode *next; /指针域LNode,*LinkList;void divide(LinkList pb-next=NULL; r=pb; p=pa-next; while(p!=NULL if(q!=NULL) p-next=q-next; r-next=q; r=q; p=p-n

8、ext; r-next=NULL; 解题方案:评分标准:三、简答题(20 分,共 4 题,每小题 5 分)1. 参考答案:在实际应用中,应根据具体问题的要求和性质来选择顺序表或链表作为线性表的存储结构,通常有以下几方面的考虑:(1)基于空间的考虑。当要求存储的线性表长度变化不大,易于事先确定其大小时,为了节约存储空间,宜采用顺序表;反之,当线性表长度变化大,难以估计其存储规模时,采用动态链表作为存储结构为好。(2)基于时间的考虑。若线性表的操作主要是进行查找,很少做插入和删除操作时,采用顺序表做存储结构为宜;反之, 若需要对线性表进行频繁地插入或删除等的操作时,宜采用链表做存储结构。并且,若链

9、表的插入和删除主要发生在表的首尾两端,则采用尾指针表示的单循环链表为宜。解题方案:评分标准:2. 参考答案:度为 2 的树从形式上看与二叉树很相似,但它的子树是无序的,而二叉树是有序的。即,在一般树中若某结点只有一个孩子,就无需区分其左右次序,而在二叉树中即使是一个孩子也有左右之分。解题方案:评分标准:3. 参考答案:程序段的功能是利用栈 T,将一个非空栈 S 中值等于 m 的元素全部删去。解题方案:评分标准:4. 参考答案:(1)P_6997A30C3A6948EE8884C1930ADA23B8(2)wpl=(2+3)*5+6*4+(9+14+15)*3+(16+17)*2=229(3)编

10、码为:15:111, 3:10101, 14:110, 2:10100, 6:1011, 9:100, 16:00, 17:01(4) 常用哈夫曼树为通讯用的字符编码,本题中集合的数值解释为字符发生的频率(次数)。由哈夫曼树构造出哈夫曼编码。译码时,进行编码的“匹配”,即从左往右扫描对方发来的“编码串”,用字符编码去匹配,得到原来的元素(本题中的数)。解题方案:评分标准:四、程序设计题(30 分,共 2 题,每小题 15 分)1. 参考答案:typedef char DataType;/定义 DataType 类型 typedefstruct node DataType data; struc

11、t node *lchild, *rchild;/左右孩子子树 BinTNode; /结点类型typedefBinTNode *BinTree ;/二叉树类型 int Leaf(BinTree T) /算叶子数 if(T) if (T-lchild=NULL) elsereturn Leaf(T-lchild)+Node(T-rchild); elsereturn 0; 解题方案:评分标准:2. 参考答案:#define ListSize 100 / 假定表空间大小为 100typedef int DataType;/假定 DataType 的类型为 int 型typedef structDa

12、taType dataListSize;/ 向量 data 用于存放表结点int length; / 当前的表长度 Seqlist;/以上为定义表结构void InsertList ( Seqlist *L, Datatype x, int i)/将新结点 x 插入 L 所指的顺序表的第 i 个结点 ai 的位置上,即插入的合法位置为:0lengthint j;if ( i L - length )Error(“position error“);/ 非法位置,退出,该函数定义见教材 P7.if ( L-length=ListSize )Error(“overflow“);for ( j=L-length-1 ; j = i ; j -)L-data j+1=L-data j ;L-data i =x ;L-length+ ;解题方案:评分标准:

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报