数据结构复习题大作业.docx
- 文档编号:30029783
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:11
- 大小:21.93KB
数据结构复习题大作业.docx
《数据结构复习题大作业.docx》由会员分享,可在线阅读,更多相关《数据结构复习题大作业.docx(11页珍藏版)》请在冰豆网上搜索。
数据结构复习题大作业
数据结构大作业:
算平时成绩的一部分
只收手工纸面版,统一用学院的实验稿纸。
自留底稿,不退。
1、讨论题:
顺序存储和链表存储的优缺点对比分析。
优点
缺点
顺序存储结构
1 存储密度大(=1),存储空间利用率高。
2 插入或删除元素时不方便
链式存储结构
1 插入或删除元素时很方便,使用灵活。
1 存储密度小(<1),存储空间利用率低
2、讨论题:
循环队列解决了什么问题?
优点是什么?
如何巧妙地实现环状?
解决了“假溢出”问题,它的优点是:
相对于一般的顺序存储队列,它不用移动数据就解决了“假溢出”问题,这样就提高了时间效率,此外,它通过求模运算可以成功求出入队、出队的地址,通过牺牲一个空间成功判断了队空和队满两种情况。
实现过程:
通过求模运算求出入队、出队的地址:
rear=(rear+1)%MaxSize, front=(front+1)% MaxSize(front为队头,rear为队尾,MaxSize为循环队列的长度)。
牺牲一个空间区分了队空和队满两种情况:
front=rear则队空,rear+1=front则队满。
3、讨论题:
一般而言,如何比较递归和非递归算法的优缺点?
递归在算法上比非递归更为简单,且比非递归更为容易理解;而非递归算法也有它的好处,递归用到了栈,要重复调用自己,重复调用自己就意味着要循环,这样,时间效率就低下,非递归算法与之相比,效率就比较高。
4、讨论题:
常规的排序算法的共同点是什么?
常规的排序算法的共同点是:
逐步缩小待排空间,每次增加一个已排空间。
5、讨论题:
字符串和线性表的关系是什么?
字符串的操作主要体现在什么方面?
举例说明那些应用是字符串操作?
字符串和线性表的关系是:
字符串是一种特殊的线性表。
字符串的操作主要体现在:
一次性处理大量字符。
串插入,串删除。
6、讨论题:
栈和队列的工作原理以及各自的应用范例?
栈的工作原理:
只允许在栈顶进行数据的插入、删除操作,进栈、出栈也只能在栈顶进行,数据拥有“后进先出”的性质。
应用范例:
用于产生数据逆序,如象棋的悔棋功;也用于保护现场,如递归函数的实现。
队列的工作原理:
在队尾插入数据,在对头删除数据,数据从队尾进队,从队投出队,
数据拥有“先进先出”的性质。
应用范例:
基于时间公平的机制所必需的数据结构;是任何需要进行缓冲区处理的比较好的实现方案。
7、讨论题:
索引存储的特点和优点?
和顺序存储和链接存储的关系讨论?
索引存储的特点:
在原始数据外,增加一些所谓的管理家数据,合起来构成一种存储结构,既保存了数据,又保存了关系。
索引存储的优点:
与链表相比,它可以做到数据的随机访问;与线性表相比,它在进行行插、删操作时不会引起大批数据的移动;此外,它还可以在一个字符串内部进行插、删操作。
索引存储必须由索引结构和顺序结构或链接结构结合。
八、讨论题:
诸如迷宫、八皇后、棋盘等课题使用什么数据结构是比较好的选择?
为什么?
诸如迷宫、八皇后、棋盘等课题使用二维数组比较好。
因为迷宫、八皇后、棋盘等课题数据之间存在各个方向上的关系,二维数组可很好反映这些关系。
此外,棋盘问题涉及到悔棋,故需用到栈;迷宫问题是一个试探和回溯的过程,也应用到栈。
9、讨论题:
图的邻接表中,挂链的结点中为什么不能存放实际要处理的数据?
图的邻接表中,挂链的结点中不能存放实际要处理的数据是因为:
挂链的结点反映的是 各结点之间的关系(可达或不可达),一般关系不变,它是不会改变的,但若存放实际要处理的数据,结点数据改变,即使关系不变,它也要改变。
10、讨论题:
哈希存储法真的能做到O
(1)级的查找算法吗?
为什么?
你如何评价这样的思路。
哈希存储法不能完全做到O
(1)级的查找算法。
哈希存储法是利用函数计算出数据应该存放的地址,存入数据,之后在需要查找数据的时候,还使用同样的函数。
表面上看,是O
(1)级的查找算法,但是,由于无论哪一种函数,它在计算地址时,或多或少都会产生冲突,这就需要通过拉链法或建立一个公共溢出区来解决,而在查找的过程中,对于冲突的数据,就不能通过函数一次找到,而还要进行比较,这样,算法就不为O
(1)级的。
虽然哈希存储法不能完全做到O
(1)级的查找算法,但由于所选函数往往能保证大部分数据不会发生冲突,冲突的只是少部分,最终的查找效率依然是很高的。
11、为什么会出现二叉树的结构?
它和树或森林之间是否有可以相互转换的规则。
由于树和森林中孩子个数的差异性和动态性给其存储结构带来了复杂性,计算机科学家发明了一种新的数据结构,即为二叉树。
转换规则如下:
1.改链:
首先把所有的兄弟关系的结点之间进行连线,同时把除了第一个孩子外的其他所有父子线都进行删除。
2.拉直:
以根为基准不动,拉动最右边的某个结点使得所有的斜线都变成垂直。
3.旋转:
以根为基准不动,拉动最右边的某个结点使得所有的结点一起向顺时针方向旋转45度。
12、图的最短路径和最小代价生成树的差异点。
图的最短路径是指两个结点间权值和最小的通路,最小代价生成树是权值总和最小的生成树。
13、举一个程序设计的范例,其中用到了至少三种以上的数据逻辑结构。
贪吃蛇、图的基本操作。
14、二叉树有没有可能演变称为三叉树等结构,为什么?
有可能,将结点与其右孩子的连线断开,将其右孩子变成父结点的右孩子。
15、最优二叉树如何做到最优的特性,举例说明?
程序设计思考题:
自己研究分析,了解常用语句的作用,了解某些重要功能的实现,不需要提交资料。
线性表两种存储结构的插入删除。
栈和队列的基本操作。
栈/队的创建、入栈/队、出栈/队、栈/队是空/满、栈/队的销毁。
二叉树遍历。
先/中/后根遍历
三元组
图的遍历
深度优先遍历、广度优先遍历
二分查找
直接插入排序
一、已知有4个元素为:
12,33,40,51。
用单链表(约定头指针为head,新结点指针为new,搜索指针为p)从左到右依次存储。
分别画出
(1)进栈39
(2)进队39(3)有序表插入39等三种情况的工作示意图。
并标注上改链的次序和主要的工作语句。
二、自己画一个6*7的稀疏矩阵(比如:
非0元只有4个)。
画出三元组表示法。
并画出对应的转置矩阵的三元组。
三、画出表达式8-6*3/(2-1)的二叉树表示。
写出四种遍历的结果。
画出利用栈进行计算的完整过程。
四、图的存储结构。
自己画一个图,至少五个结点,多条边。
画出邻接矩阵和邻接表示意图。
五、树、二叉树、森林的互相转换。
自己画一个有三层深度、树的度为3的一棵树,改划成二叉树。
六、最优二叉树的建立。
权值序列:
25、12、27、6、15、
七、二分查找法的示意图。
自己产生十个数据。
画出其中一个元素查找成功的过程。
八、哈希查找法。
对于数据序列39、24、15、7、16、10。
哈希函数为hash(x)=xmod9。
假设冲突采用挂链法。
画出完整的示意图。
九、快速排序法。
对于数据序列45、12、78、35、49、87、26、95。
画出第一轮排序的过程。
叙述主要的算法思路。
十、堆排序。
对于数据序列15、24、72、35、49、25、64。
画出对应的顺序存储示意图
。
画出对应的完全二叉树。
画出初始大根堆。
画出初始大根堆对应的存储结构。
画出产生已排序空间一个数据的逻辑结构示意图。
单选题复习用
1、数据结构除了研究数据本身如何表示和存储外,还需要重点研究数据________________。
(A)的数量(B)的质量(C)的属性(D)之间的关系
2、以下哪种逻辑结构重点表示数据之间的层次关系。
(A)线性结构(B)树形结构(C)图形结构(D)集合结构
3、以下哪种存储结构主要是通过增加新的管理数据来同时保证读取数据的高速和动态修改数据的高速。
(A)顺序存储(B)链接存储(C)索引结构(D)哈希存储
4、遍历操作是对某个数据结构中所有数据需要做到______的访问。
(A)至少一次且至多一次(B)可以多次
(C)大部分一次,部分可以重复(D)二次
5、下面哪一句话是正确的。
(A)算法就是可以运行的程序
(B)算法是程序的总结,只能用中文表示
(C)算法是表示一种解决问题的思路
(D)算法最好用英语表示,这样可以很快切换成程序。
6、一个满二叉树共有三层,问有几个结点?
(A)5(B)6(C)7(D)8
7、结点个数为4个的无向完全图的边数是多少条?
(A)5(B)6(C)7(D)8
8、实现函数调用返回点管理应该用数据结构_______。
(A)二叉树(B)图(C)栈(D)队列
1、二分查找法适合______。
(A)适合顺序表和链表等结构(B)数据不需要排序,但是必须顺序存储
(C)仅仅把数据排序后的顺序表(D)二叉树和图
2、在字符串结构中,哪一个是进行查找操作?
(A)求子串(B)串比较(C)串遍历(D)子串定位
3、在字符串的索引结构中,哪一个操作没有对原始数据区进行处理?
(A)插入字符(B)删除字符串(C)删除行(D)修改字符
4、一个m*n的矩阵,用列优先存储,元素A(i,j)存储在位置k上,在横向关系上的直接前驱在一维数组中一般地址为(约定每一个元素仅仅占一个单元):
(A)k+1(B)k-1(C)k+m(D)k-m
5、用建立大根堆来进行排序,最后的结果是什么?
(A)升序(B)降序(C)逆序(D)不一定
6、图结构的遍历操作中,一般采用什么机制可以最简单地避免再次访问已经被访问过的结点。
(A)计算是否有环路(B)计数器(C)标志位(D)哈希函数
7、如果一个程序在内存中某批数据时进行插入和删除操作非常频繁,则建议使用哪种存储结构?
(A)顺序(B)链接(C)索引(D)哈希
8、下面哪个操作不是动态操作?
(A)修改(B)插入(C)删除(D)查找
9、如果一个算法的时间效率和数据量无关,用哪种符号表示?
(A)O(c)(B)O
(1)(C)O(n)(D)O(x)
10、递归的算法包括哪两个环节
(A)前进和撤退(B)上升和下降(C)进入和回退(D)变大和变小
11、二叉树的一种遍历名称,其编程实现时一般需要队列的帮助。
(A)先根遍历(B)后根遍历(C)深度遍历(D)层次遍历
12、递归程序看似简洁,但是其运行必须启用下面的某种数据结构来管理。
(A)字符串(B)栈(C)森林(D)最优二叉树
13、在一个带权连通图G中,权值最小的边一定包含在G的_____生成树中。
(A)广度优先(B)深度优先(C)最小(D)任何
14、对称矩阵如果只存储下三角的数据时,可以减少存储量:
(A)一半(B)多于一半(C)少于一半(D)大约2/3
15、稀疏矩阵m*n中有k个非零元素,用三元组存储时,需要多少单元的存储量?
(A)m*n*3(B)k+3(C)k*3(D)k*3+3
16、迷宫程序位置移动如果也考虑斜向45度关系,那么某一个位置可以移动走的坐标(不考虑边界等意外因素)有几个?
(A)2(B)4(C)6(D)8
17、图的邻接表中存储关系数据采用了什么存储结构?
(A)顺序存储结构(B)链式存储结构(C)索引存储结构(D)散列存储结构
18、三个数据(A,B,C)通过栈的处理(一次进栈和出栈)不能得到的一种出栈序列是:
(A)(A,B,C)(B)(A,C,B)(C)(C,A,B)(D)(C,B,A)
1、计数器减一
(A)i++(B)i=k-1(C)i=count(i)-1(D)i=i-1;
2、c语言程序开始运行的入口函数为
(A)intopen()(B)intstart()(C)intmian()(D)intmain()
3、地址编号为10100的一个语句调用了一个函数,那么为了能正确的返回,必须启用什么机制?
(A)在被调用函数最后一句写上return(10101)
(B)启用一个标志位,管理返回点
(C)启用一个栈,管理返回点
(D)通知机房工作人员,请求帮助
4、以下的语句是什么功能?
p=p->next;
(A)指针p向其直接后继移动(B)p的值减去next的值
(C)指针p向其直接前驱移动(D)判断p是否大于next的值
5、c语言(不是c++)中申请一个新结点是什么语句?
(A)newnode=NEWnode;(B)newnode=NewOneNode;
(C)newnode=malloc(Node);(D)newnode=(Link*)malloc(sizeof(Node));
6、c语言(不是c++)中输出结点中的数据是什么语句?
(A)printdata;(B)printf("[%d,%d],Pointer->Number,Pointer->Total);
(C)print(p->data);(D)cout(p->data);
7、c语言(不是c++)中输入数据是什么语句?
(A)inputdata;(B)cin(data):
(C)scanf("%d",&data);(D)scanf("%d",data);
8、顺序栈进栈的主要动作为:
(A)先写入数据,再移动top(B)直接填入数据到合法地址即可
(C)先移动top,再写入数据(D)把数据填入最边界的单元中
9、哪一个是合法的一维顺序表地址计算公式?
(A)locAi=locA1+i(B)ai=loc(a0)+i*d
(C)i=loc(A0)-d(D)Loc(Ai)=Loc(A1)-(i-1)*d
10、环队结构出队产生下一个合法地址的语句是:
(A)f=f+1(B)f=(f+1)%MaxSize
(C)f=f+MaxSize(D)rear=(rear+1)%M
1、Windows操作系统中在外存硬盘上的文件采用的哪种数据结构的构造思想?
(A)线性链表(B)哈希表(C)十字链表(D)索引文件
2、象棋程序中棋盘表示、悔棋功能、复盘功能对应的三种底层数据结构为:
(A)广义表+树+三元组(B)线性表+栈+字符串
(C)二维数组+栈+队列(D)图+队列+最优二叉树
3、一个小型机的机房中,有10位老师在做科研,有30位博士和硕士在做设计,有300名学生在做实验。
请问对该小型机的CPU时间片管理应该采用哪种策略是最佳方案?
(A)启用先到先服务的队列机制(B)启用能表示层次结构的树
(C)启用分块的哈希表(D)启用优先级系数和队列排队结构
4、(c语言中)从键盘输入一个数学表达式,现在要把该表达式进行存储,此时如何定义这个结构的数据类型?
(A)二叉树(B)字符串(C)字符数组(D)整型
5、AOV网需要产生拓扑排序,其数据结构必须是?
(A)无向图(B)有向无环图(C)森林(D)线性表
6、如果要求编程计算多项式的和,存储多项式的最佳存储结构是什么?
(A)链表(B)数组(C)哈希(D)集合
7、如果一个无向图,需要用相对节省空间的方式存储其中的关系信息,那么建议采用什么方案?
(A)设法使该图的边非常少,从而可以启用三元组
(B)有边的才用链表表示,临时申请结点
(C)继续用二维数组存储,但是遇到0的时候空置其存储单元
(D)先用二维数组表示然后改为只存储下三角矩阵的数据结构
8、推箱子小游戏、迷宫等底层设计中布局应该启用什么数据结构?
(A)图(B)集合(C)二维数组(D)一维数组
9、哪种高级语言的代码构造结构是广义表?
(A)c++(B)Lisp(C)c(D)java
10、为了表示军队、公司等层次化管理机制,应该采用哪种数据结构表示?
(A)图(B)二叉树(C)树(D)字符串
课程学习总报告(收获与遗憾,心路历程,成长心得,告别语)电子版不用手工版
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 复习题 作业
![提示](https://static.bdocx.com/images/bang_tan.gif)