西南交大数据结构主观题作业.docx

上传人:h**** 文档编号:1372438 上传时间:2019-02-23 格式:DOCX 页数:14 大小:55.64KB
下载 相关 举报
西南交大数据结构主观题作业.docx_第1页
第1页 / 共14页
西南交大数据结构主观题作业.docx_第2页
第2页 / 共14页
西南交大数据结构主观题作业.docx_第3页
第3页 / 共14页
西南交大数据结构主观题作业.docx_第4页
第4页 / 共14页
西南交大数据结构主观题作业.docx_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、 1 / 14弘成无锡数字化学习中心批次层次:专升本专业:计算机科学与技术姓名:刘鹏亮学号:159406732 / 14第一次作业三、主观题(共 3 道小题)14. 数据的物理结构包括 的表示和 的表示。参考答案:线性结构 , 非线性结构 15. 数据逻辑结构包括 、 、 和 四种,树结构和图结构统称为 。参考答案: 集合 、 线性结构 、 树 、 图 、非线性结构 16. 数据结构研究的是 和 以及它们之间的相互关系,并对于这种结构定义相应的 ,设计出相应的 。参考答案: 逻辑结构 , 物理结构 , 运算 ,算法第二次作业三、主观题(共 22 道小题)24. 向一个长度为 n 的顺序表中的第

2、 i 个元素之前插入一个元素时,需要向后移动 个元素。参考答案:n-i+1 25. 在一个长度为 n 的顺序表中删除第 i 个元素时,需要向前移动 元素。参考答案: n-i 26. 在单链表中设置头结点的作用是 。参考答案:简单插入、删除算法 27. 在单链中要删除某一指定结点,必须找到该结点的 结点。参考答案:直接前驱28. 访问单链表中的结点,必须沿着 依次进行。参考答案:指针域29. 在双链表中每个结点有两个指针域,一个指向 ,一个指向 。参考答案:直接前驱结点 ,直接后继结点 30. 在 链表中,删除最后一个结点的算法时间复杂度为 O(1)。参考答案: 双向循环 31. 访问一个线性表

3、中具有给定值的时间复杂度的数量级是 。参考答案:O(n)32. 由 n 个数据元素生成一个顺序表,若每次都调用插入算法把一个元素插入到表头,则整个算法的时间复杂度为 ,若每次都调用插入算法把一个元素插入到表尾,则整个算法的时间复杂度为 。参考答案:O(n) , O(n2) 33. 在 链表中,可以用表尾指针代替表头指针。3 / 14参考答案: 双向 34. 在 链表中,可以用表尾指针代替表头指针。参考答案: 双向35. 根据 n 个数据元素建立对应的顺序表和单链表存储结构,其算法的时间复杂度最好的情况是 ,最坏的情况是 。参考答案:O(n) , O(n2) 36. 求线性表的顺序存储和链式存储

4、的长度的算法时间复杂度分别是 和 。参考答案:O(1) , O(n) 37. 在一个带头结点的单链表中,在表头插入或删除与在其他位置插入或删除,其操作过程是否相同? 。参考答案:相同 38. 在一个不带头结点的单链表中,在表头插入或删除与在其他位置插入或删除,其操作过程是否相同? 。参考答案:不相同39. 阐述顺序表和链表存储方式的特点。参考答案:顺序表存储方式为数据分配连续的存储单元,数据元素按逻辑顺序依次存储到相应存储单元中,使得逻辑相邻的数据元素物理也相邻,因此可以实现随即访问线性表的数据元素,即数据访问的时间复杂度为 O(1)。链表存储方式分配的存储单元可以不连续,通过每个结点的指针域

5、来表示数据元素之间的逻辑关系,只能顺序访问线性表中的数据元素。40. 若频繁地对一个线性表进行插入和删除操作,则该线性表宜采用何种存储结构,为什么?参考答案:若频繁地对一个线性表进行插入和删除操作,则该线性表宜采用链式存储结构。因此链式存储结构在插入和删除数据元素时不需要移动数据元素,只需要修改结点的指针域就可以改变数据元素之间的逻辑关系。41. 在单链表、双向循环链表和单循环链表中,若仅知道指针 p 指向某结点,不知道头指针,能否将结点 p 从相应的链表中删除?若可以,时间复杂度各为多少。参考答案:要实现删除 p 结点的操作,必须找到其前驱结点,修改其指针域的值使其指向 p 的后继结点,以实

6、现删除结点 p。单链表不行,因此不知道头指针就无法找到结点 p 的前驱结点。双向循环链表和单循环链表可以可以实现删除 p 结点。单循环链表删除 p 结点的时间复杂度为 O(n),双循环链表删除 P 结点的时间复杂度为 O(1)。42. 对链表设置头结点的作用是什么?参考答案:对带头结点的链表,在表的任何结点之前插入结点或删除任何位置的结点,所要做的都是修改前一个结点的指针域,因为在带头结点的链表中任何元素结点都有前驱结点。如果没有头结点,在首元结点前插入结点或删除首元结点都要修改头指针,其算法要比不带头结点的算法复杂些。4 / 14其次,带头结点的链表结构,初始化后的头指针就固定了,除撤销算法

7、外,所有算法都不会修改头指针,可以减少出错的可能性。43. 已知一个线性表用含头结点的单链表做存储结构,写一个算法求单链表的长度。参考答案:int listlenght(linklist L) int length=0;P=L-next;while(p) length+;p=p-next;return(length);44. 已知一个顺序表 L,其中的元素按值递增有序排列,设计一个算法插入一个值为 x 的元素后保持该顺序表仍然递增有序,且空间复杂度为 0(1)。参考答案:void insertsq(sqlist L,elemtype x) n=L.length-1;if(LT(L.elemn,

8、x) n+;L.elemn=x;elsewhile(n=0n-;L.elemn+1=L.elemn;return;45. 写一个算法,从顺序表中删除值为 x 的所有元素。参考答案:void delallsq(Sqlist while(jnext=Q.rear70. 如果栈的最大长度难以估计,最好使用 。参考答案:链栈 71. 为什么说栈是一种后进先出表?参考答案:因为栈是限定在表的一端进行插入和删除操作,所以后入栈的数据元素总是先出栈,所以说栈是一种后进先出表。72. 对于一个栈,其输入序列是 A,B,C,试给出全部可能的输出序列。6 / 14参考答案:可能的出栈序列是:ABC、ACB、BAC

9、、BCA、CBA。73. 何谓队列上溢?何为假溢出现象?有哪些解决假溢出问题的方法,并分别阐述其工作原理。参考答案:队列上溢指在队列的顺序存储分配中,按照队列的操作规则,需要进队的元素因找不到合适的存储单元而无法进入队列。假溢出指在队列的顺序存储分配中,分配给队列的存储空间有存储单元未被占用,但按照操作规则而使进队的数据元素无法进队的现象。解决假溢出问题的方法是在队列的顺序存储分配中,分配给队列的存储空间可以循环使用,其进本原理是用表示队头和队尾指针与分配给队列的存储空间长度进行取模运算。即:入队操作:Q.rear=(Q.rear+1)%MSize出队操作:Q.front=(Q.front+1

10、)%MSize74. 队列可以用单循环链表来实现,故可以只设一个头指针或只设一个尾指针,请分析用哪种方案最合适。参考答案:使用循环链表来表示队列,设置尾指针比较合适,因为入队操作可以直接在尾结点后进行插入操作,出队操作时可以根据尾指针很容易找到链表的头结点,入队出队操作的算法时间复杂度均为 O(1)。若只设头指针,则出队操作的算法时间复杂度为 O(1),入队操作的算法时间复杂度为 O(n)。75. 深度为 k 的完全二叉树至少有 个结点,至多有 个结点。参考答案:2 K-1 ,2K-1 76. 在一棵二叉树中,度为 0 的结点个数为 n0,度为 2 的结点个数为 n2,则有 n0= 。参考答案

11、: n2+177. 一棵二叉树第 i 层最多有 个结点,一棵有 n 个结点的满二叉树共有 个结点,共有个叶结点。参考答案:2 i-1 ,2K-1 , 2K-1 78. 根据二叉树的定义,具有 3 个结点的二叉树共有 种不同形态,它们分别是 。参考答案:5 , 79. 有一棵如下图所示的树,回答下列问题:这棵树的根结点是 。这棵树的叶子结点是 。结点 c 的度为 。7 / 14这棵树的深度是 。结点 c 的孩子结点是 。结点 c 的双亲结点是 。这棵树的度是 。参考答案: a b,e,g,d 2 4 e,f a 380. 树与二叉树的两个主要差别是 、 。参考答案:树中结点的最大度没有限制,二叉

12、树结点的最大度限定为 2 、 树的结点无左右之分,二叉树的的节点又左右之分 。81. 设有如下图所示的二叉树,给出其前序、中序和后序遍历结果。8 / 14参考答案:前序序列:eadcbifghj中序序列:abcdiefhgj后序序列:bcidahjgfe82. 给出下图所示的树的二叉树表示。参考答案:下图为其树的二叉树表示。9 / 1483. 有一份电文共有 5 个字符:a,b,c,d,e,它们出现的频率依次为 4,7,5,2,9,构造对应的哈夫曼树,求哈夫曼树的带权路径长度和每个字符的哈夫曼编码。参考答案:字符编码:a:011b:10c:00d:010e:1184. 假设一棵二叉树采用顺序存储结构,如下图所示。0 5 10 15 2010 / 14e a f d g c j h i b 回答些列问题:画出二叉树表示。写出先序、中序和后序遍历结果写出结点 c 的双亲结点和左、右孩子结点画出此二叉树还原成森林的图参考答案:二叉树表示如下图所示。先序序列为:eadcbjfghi中序序列为:acbdjefhgi后序序列为:bcjdahigfe结点 c 的双亲结点是 d,左孩子为 b,无右孩子该二叉树对应的森林为85. 有 n 个顶点的无向图最多有 条边。参考答案:n(n-1)/286. 一个图的 表示法是唯一的,而 表示法是不唯一的。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。