02331数据结构201804

02331数据结构201804
02331数据结构201804

2018年4月高等教育自学考试全国统一命题考试

数据结构试卷

(课程代码02331)

本试卷共8页,满分l00分,考试时间l50分钟。

考生答题注意事项:

1.本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均可作草稿纸。2.第一部分为选择题。必须对应试卷上的题号使用28铅笔将“答题卡”的相应代码涂黑。3.第二部分为非选择题。必须注明大、小题号,使用0.5毫米黑色字迹签字笔作答o 4.合理安排答题空间。超出答题区域无效。

第一部分选择题

一、单项选择题:本大题共l5小题,每小题2分,共30分。在每小题列出的备选项中

只有一项是最符合题目要求的,请将其选出。

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.头、尾指针可能都要修改

数据结构期末考试复习笔记

判断: 1.线性表的链式存储结构优于顺序存储错误 2.单链表的每个节点都恰好包含一个指针域错误 3.线性表中的元素都可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因 此属于同一数据对象正确 4.在线性表的顺序存储结构中,逻辑上相邻的两个元素在屋里位置上并不一定紧邻。错 误 5.在线性表的数据结构中,插入和删除元素时,移动元素的个数和该元素的位置有关。正 确 6.顺序存储的线性表可以实现随机存取正确 7.栈一定是顺序存储的线性结构错误 8.一个栈的输入序列为A,B,C,D,可以得到输入序列为C,A,B,D 错误 9.队列是一种后进先出的线性表错误 10.树结构中每个节点最多只有一个直接前驱正确 11.二叉树的前序遍历中,任意一个节点均处于其子树节点的前面正确 12.在栈空的情况下,不能做出出栈操作,否则产生溢出正确 13.在前序遍历二叉树的序列中,任何节点的子树的所有节点都是直接跟在该节点之后正 确 填空: 1.在N个节点的顺序表中删除一个节点平均需要移动((N-1)/2)个节点,具体的移 动次数取决于(表长N和删除位置) 2.在单链表中除首节点外,任意节点的存储位置都由(直接前驱)节点中的指针指示 3.树中节点的最大层次称为树的(度) 4.由一颗二叉树的前序序列和(中)序列可唯一确定这棵二叉树 5.哈弗曼树的带权路径长度(最小)的二叉树 6.二插排序树任意节点的关键字值(大于)其左子树中各节点的关键字值(小于)其 右子树中的各节点关键字值 7.二分查找法,表中元素必须按(关键字有序)存放 选择: 1.用单链表方式存储的线性表,储存每个节点需要两个域,一个数据域,另一个是(B 指针域) 2.设A1,A2,A3为三个节点;P,10,,2代表地址,则如下的链表存储结构称为(B 单链表) 3.单链表的存储密度(C 小于1) 4.在线性表中(B 中间元素)只有一个直接前驱和一个直接后续 5.两个指针P和Q,分别指向单链表的两个元素P所指元素时Q所指元素前驱的条 件是(D P==Q) 6.在栈中存取数据的原则是(B 后进先出) 7.顺序栈判空的条件是(C top==-1) 8.串是一种特殊的线性表,其特殊性体现在(B 数据元素是一个字符) 9.求字符串T和字符串S中首次出现的位置的操作为(C 串的模式匹配) 10.深度为H的二叉树至多有(B 2H-1)个节点

2021北京科技大学计算机科学与技术考研真题经验参考书

我本科在燕山大学,作为河北省的一个旅游城市,旅游季节超级多以外,真的没有开拓我太多眼界,但是鉴于老师负责而且很专业,教会了我很多知识。但是我们专业,在一二线城市,机会多,企业多,就业及科研合作机会也多,所以,选择学校,一定要先看城市,再选学校。对我而言,研究生考进北科大,也是一项很大的挑战和提升。下面是我整理的一些考研经验与心得,希望能助你一臂之力,早日考进自己理想的学校。 数学: 对于计算机科技而言,数学很重要。我们专业是以数学逻辑为基础的,数据结构是建立在数学基础之上的一门学科。可以说,数学是我们的工具书。数学真的很重要。要从3月份就开始复习,这样后面会比较轻松。建议先从基础教材着手,看完教材,要做课后练习题,测试自己是否掌握了本章节的知识。这样,高数和线性代数的课本过一遍,需要2-3个月的时间。第二阶段就要做大量的练习了,研数盒子,这个公众号的特点是习题为主,数学一定要多加练习,这个公众号就是以练习各种习题为主,每周都会发各种作业和讲解,研数盒子有一套教材叫做研数800题非常好。做的过程中,对错题要着重注意并记录一下,建立一个错题本,然后针对没做对的题,分析归纳,然后回归到课本上,查到对应章节,重新温习。这套练习要刷个3遍左右,每一遍你都会有新的认识和体会,个人觉得效果会比做3套不同的题更有效。3遍下来,精读的效果就很明显了,这就是“温故知新”的道理。10月开始,真题要开始做起来了,向上面一样,建立错题本,这个本会是你考研备考后期独一无二的宝典。总之,数学真的很重要,要自始至终坚持到底,除了反复多加练习,还要多思考。 英语: 阅读理解很重要,备考需要坚持每天2篇阅读,开始的时候要精度,好好分析一下句式,掌握好主谓宾从,整段意思也就很容易理解了。学会分析句式以后,后续就会容易很多。再就是单词部分,买一本基础的单词书<<一本单词>>,早晨背完,晚上回忆,过电影一样的,重要的单词,要熟悉到知道在哪个位置,上面的解释是什么。没事看看,不想看书的时候看看,随手看看,遍数多了,自然会记住了,或者每个考生都有自己独特的单词记忆方法,请大家用尽十八般武艺,只有一个目的——背好单词,大家也可以关注蛋核英语公众号。再说说作文,作文呢,一定要积累名言警句,有华丽的辞藻才能表达出自己的观点对不对?作文

自考《数据结构》真题和答案

2016年10月高等教育自学考试全国统一命题考试 数据结构试卷 (课程代码02331) 本试卷共7页,满分l00分,考试时间l50分钟。 考生答题注意事项: 1.本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均可作草稿纸。2.第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。3.第二部分为非选择题。毖须注明大、小题号,使用0.5毫米黑色字迹签字笔作答。4.合理安排答题空间,超出答题区域无效。 第一部分选择题(共30分) 一、单项选择题(本大题共l5小题,每小题2分,共30分> 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题 卡”的相应代码涂黑。错涂、多涂或未涂均无分。 1.下列选项中,不属于线性结构特征的是 A.数据元素之间存在线性关系 B.结构中只有一个开始结点 C.结构中只有一个终端结点 D.每个结点都仅有一个直接前趋 2.设l7个元素的顺序表中,若将第个元素e移动到第个位置,

不改变除e外其他元素之间的相对次序,则需移动的表中元素个数是 3.若用一个大小为7的数组作为循环队列的存储结构,且当前rew和盘0nt的值分别 为2和4,在此之前的操作是从队列中删除了一个元素及加入两个元素,请问这3 个操作之前rear和矗0nt的值分别是 A.0和l B.0和3 C.3和6 D.4和5 4.已知广义表LS=(((a)),((b,(c)),(d,(e,f))),0),LS的长度是 A.2 B.3 C.4 D. 5 5.一棵完全二叉树T的全部k个叶结点都在同一层中且每个分支结点都有两个孩子结点。于中包含的结点数是 A.k B. 2k-1 C.k2 D.2k-1 6.如果某二叉树的前序遍历序列为abced,中序遍历序列为cebda,则该二叉树的后序 遍历序列是 A.cedba B.decba C.ecdba D.ecbad 7.一个森林有m棵树,顶点总数为n,则森林中含有的总边数是 A.m B. n-l C.n-m D.n+m 8.设图的邻接矩阵A如下所示。各顶点的度依次是

02331数据结构200710

2007年10月高等教育自学考试全国统一命题考试 数据结构试卷 (课程代码2331) 本试卷共12页,满分100分;考试时间150分钟。 一、单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下面程序段的时间复杂度为 A.O(1) B.O(log n) C.O(n) D.O(n2) 2.已知指针p和q分别指向某单链表中第一个结点和最后一个结点。假设指针s指向另一个单链表中某个结点,则在8所指结点之后插入上述链表应执行的语句为【】 3.在计算机内实现递归算法时所需的辅助数据结构是【】 A.栈B.队列 C.树D.图 4.假设以数组A[m]存放循环A[m]的元素。已知队列的长度为length,指针rear指向队尾元素的下一个存储位置。则队头元素所在的存储位置为【】 5.通常将链串的结点大小设置为大于l是为了【】 A.提高串匹配效率B.提高存储密度 C.便于插入操作D.便于删除操作 6.带行表的三元组表是稀疏矩阵的一种【】 A.顺序存储结构B.链式存储结构 C.索引存储结构D.散列存储结构 7.表头和表尾均为空表的广义表是【】 A.( ) B.( ( ) ) C.( ( ( ) ) ) D.( ( ),( ) ) 8.用二叉链表表示具有n个结点的二叉树时,值为空的指针域的个数为【】A.n-1 B.n C.n+l D.2n 9.为便于判别有向图中是否存在回路,可借助于【】

A.广度优先搜索算法B.最小生成树算法 C.最短路径算法D.拓扑排序算法 10.连通网的最小生成树是其所有生成树中【】 A.顶点集最小的生成树B.边集最小的生成树 C.顶点权值之和最小的生成树D.边的权值之和最小的生成树 11.按排序过程中依据的原则分类,快速排序属于【】 A.插入类的排序方法B.选择类的排序方法 C.交换类的排序方法D.归并类的排序方法 12.下列关键字序列中。构成小根堆的是【】 A.{84,46,62,41,28,58,15,37} B.{84,62,58,46,4l,37,28,15} C.{15,28,46,37,84,41,58,62} D.{15,28,46,37,84,58,62,41} 13.在长度为32的有序表中进行二分查找时,所需进行的关键字比较次数最多为【】A.4 B.5 C.6 D.7 14.假设在构建散列表时,采用线性探测解决冲突。若连续插入的n个关键字都是同义词,则查找其中最后插入的关键字时,所需进行的比较次数为【】 A.n-1 B.n C.n+l D.n+2 15.散列文件也称为【】 A.顺序文件B.索引文件 C.直接存取文件D.间接存取文件 二、填空题(本大题共10小题,每小题2分,共20分) 请在每小题的空格中填上正确答案。错填、不填均无分。 16.数据的逻辑结构描述数据元素之间的________________________,与存储方式无关。17.在一个长度为100的顺序表中删除第10个元素时,需移动________________________个元素。 18.队列的队尾位置通常是随着________________________操作而变化的。 19.两个空串联接得到的串的长度为________________________。 20.设对称矩阵A压缩存储在一维数组B中,其中矩阵的第一个元素a11存储在B[0],元素a52存储在B[11],则矩阵元素a36存储在B[________________________]中。 21.已知一棵哈夫曼树含有60个叶子结点,则该树中共有________________________个非叶子结点。 22.如图所示的有向图中含有________________________个强连通分量。 23.已知一组关键字为{15,36,28,97,24,78,47,52,13,86},其中每相邻两个关键字构成一个有序子序列。对这些子序列进行一趟两两归并的结果是

郝斌数据结构自学笔记--知识点+程序源代码

郝斌数据结构自学笔记 --知识点+程序源代码 By-HZM 1_什么叫做数据结构 数据结构概述 定义 我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法。 ~ 数据结构=个体的存储+个体的关系存储 算法=对存储数据的操作 2_衡量算法的标准 算法 解题的方法和步骤 ~ 衡量算法的标准 1)时间复杂度:大概程序执行的次数,而非执行的时间 2)空间复杂度:算法执行过程中大概所占用的最大内存 3)难易程度 4)健壮性 3_数据结构的特点 【 数据结构的地位 数据结构是软件中最核心的课程 程序=数据的存储+数据的操作+可以被计算机执行的语言 4_预备知识_指针_1 5_预备知识_指针_2 * 指针的重要性: 指针是C语言的灵魂 定义:

地址: 地址是内存单元的编号,从0开始的非负整数,范围:0-FFFFFFFF【0-4G-1】 CPU=====地址线,控制线,数据线=====内存 指针: … 指针就是地址,地址就是指针。 指针变量是存放内存单元地址的变量。 指针的本质是一个操作受限的非负整数。 分类: 1.基本类型的指针 2.指针和数组的关系 ? 变量并不一定连续分配,随机分配内存。 内存: 内存是多字节组成的线性一维存储空间。 内存的基本划分单位是字节。 每个字节含有8位,每一位存放1个0或1个1. 内存和编号是一一对应的。 ( 软件在运行前需要向操作系统申请存储空间。在软件运行期间,该软件所占空间不再分配给其他软件。当软件运行完毕后,操作系统将回收该内存空间(操作系统并不清空该内存空间中遗留下来的数据)。 NOTE:1)指针变量也是变量,普通变量前不能加*,常亮和表达式前不能加&。 2)局部变量只在本函数内部使用。 如何通过被调函数修改主调函数中普通变量的值。 1)实参为相关变量的地址; < 2)形参为以该变量的类型为类型的指针变量; 3)在被调函数中通过 *形参变量名的形式的形式就可以修改主函数。 CASE 1 #include<> int main(void) { |

02331数据结构课后练习题

第1章概论 练习题 一、单项选择题 1.在数据结构中,从逻辑上可以把数据结构分为(B)A.紧凑结构和非紧凑结构B.线性结构和非线性结构 C.内部结构和外部结构D.动态结构和静态结构2.若结点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为(D)A.顺序存储结构B.链式存储结构 C.索引存储结构D.散列存储结构 3.算法分析的两个主要方面是(B)A.正确性和简明性B.时间复杂性和空间复杂性 C.可读性和可维护性D.数据复杂性和程序复杂性4.线性表采用链式存储结构时,要求内存中可用存储单元地址(A)A.不一定连续的B.部分地址必须是连续的 C.必须是连续的D.一定是不连续的 5.算法指的是(C)A.计算机程序B.解决问题的计算方法 C.解决问题的有限运算序列D.排序算法 二、填空题 6.数据结构一般包括逻辑结构、存储结构和数据运算三个方面的内容. 7.数据的逻辑结构可分为线性结构、非线性结构两大类. 8.数据的存储结构(物理结构)一般可以用顺序存储结构、链式存储结构、索引存储结构及散列存储结构等四种存储方法表示. 9.在选用求解一个问题的算法时,除了首先考虑算法是“正确的”之外,还主要考虑执行算法所需要的时间、执行算法所需要的存储空间及算法应易于理解、易于编程、易于调试等三点。 10.设有一批数据元素,为了最快地存取某元素,宜用顺序结构存储,为了方便的插入一个元素,宜用链式结构存储. 三、应用题 设n为正整数,利用大“O”记号,写出下列各程序段的时间复杂度. 11.for (i = 1; i <= n; i++){ y = y + 1; for (j = 1; j <= 2 * n; j++) x = x + 1; } 分析:语句“y = y + 1;”执行n次,语句“x = x + 1;”各执行2 2n次,故该程序段的时间复杂度为O(2n).12.s = 0; while (n >= (s + 1) * (s + 1)) s = s + 1; 分析:语句“s = s + 1;.

数据结构复习笔记

数据结构复习笔记 作者: 网络转载发布日期: 无 数据就是指能够被计算机识别、存储和加工处理的信息的载体。 数据元素是数据的基本单位,有时一个数据元素可以由若干个数据项组成。数据项是具有独立含义的最小标识单位。如整数这个集合中,10这个数就可称是一个数据元素.又比如在一个数据库(关系式数据库)中,一个记录可称为一个数据元素,而这个元素中的某一字段就是一个数据项。 数据结构的定义虽然没有标准,但是它包括以下三方面内容:逻辑结构、存储结构、和对数据的操作。这一段比较重要,我用自己的语言来说明一下,大家看看是不是这样。 比如一个表(数据库),我们就称它为一个数据结构,它由很多记录(数据元素)组成,每个元素又包括很多字段(数据项)组成。那么这张表的逻辑结构是怎么样的呢? 我们分析数据结构都是从结点(其实也就是元素、记录、顶点,虽然在各种情况下所用名字不同,但说的是同一个东东)之间的关系来分析的,对于这个表中的任一个记录(结点),它只有一个直接前趋,只有一个直接后继(前趋后继就是前相邻后相邻的意思),整个表只有一个开始结点和一个终端结点,那我们知道了这些关系就能明白这个表的逻辑结构了。 而存储结构则是指用计算机语言如何表示结点之间的这种关系。如上面的表,在计算机语言中描述为连续存放在一片内存单元中,还是随机的存放在内存中再用指针把它们链接在一起,这两种表示法就成为两种不同的存储结构。(注意,在本课程里,我们只在高级语言的层次上讨论存储结构。) 第三个概念就是对数据的运算,比如一张表格,我们需要进行查找,增加,修改,删除记录等工作,而怎么样才能进行这样的操作呢? 这也就是数据的运算,它不仅仅是加减乘除这些算术运算了,在数据结构中,这些运算常常涉及算法问题。 弄清了以上三个问题,就可以弄清数据结构这个概念。 -------------------------------------------------------------------------------- 通常我们就将数据的逻辑结构简称为数据结构,数据的逻辑结构分两大类:线性结构和非线性结构(这两个很容易理解) 数据的存储方法有四种:顺序存储方法、链接存储方法、索引存储方法和散列存储方法。-------------------------------------------------------------------------------- 下一个是难点问题,就是算法的描述和分析,主要是算法复杂度的分析方法及其运用。首先了解一下几个概念。一个是时间复杂度,一个是渐近时间复杂度。前者是某个算法的时间耗费,它是该算法所求解问题规模n的函数,而后者是指当问题规模趋向无穷大时,该算法时间复杂度的数量级。 当我们评价一个算法的时间性能时,主要标准就是算法的渐近时间复杂度,因此,在算法分析时,往往对两者不予区分,经常是将渐近时间复杂度T(n)=O(f(n)简称为时间复杂度,其中的f(n)一般是算法中频度最大的语句频度。 此外,算法中语句的频度不仅与问题规模有关,还与输入实例中各元素的取值相关。但是我们总是考虑在最坏的情况下的时间复杂度。以保证算法的运行时间不会比它更长。 常见的时间复杂度,按数量级递增排列依次为:常数阶O(1)、对数阶O(log2n)、线性阶O(n)、线性对数阶O(nlog2n)、平方阶O(n^2)、立方阶O(n^3)、k次方阶O(n^k)、指数阶O(2^n)。 时间复杂度的分析计算请看书本上的例子,然后我们通过做练习加以领会和巩固。 数据结构习题一 --------------------------------------------------------------------------------

2012版《数据结构高分笔记》更新补丁之外部排序

※特别章外部排序(2012版《数据结构高分笔记》更新补丁) ·外部排序简介 所谓外部排序,即对外存中的数据进行排序(相对于内部排序而言),也可以说是对文件中的数据进行排序。有了内部排序算法,为什么还要外部排序?因为文件太大,内存放不下。外排做法可以概括为一句话:将内存作为工作空间来调整外存中数据的位置。 具体可以分成以下三个要点: ①文件在外存中的组织; ②文件在内存中的排序; ③文件在内外存之间的交换。 说明:本补丁是2012年数据结构考研大纲新增内容,虽然知识点不多,但由于第一年被列入考试范围,所以大家要重视。 ·归并排序法 归并排序法是外排序中最常用的方法,分为两个执行阶段。第一阶段:将文件中的数据分段输入到内存中,在内存中用内排序方法对其分类,这样排序完的文件段称作归并段,然后将其写回外存中而在外存中形成了许多初始归并段。第二阶段:对这些初始归并段采用某种归并方法,进行多遍归并,最后在外存上形成整个文件的单一归并段,也就完成了这个文件的外排序。 说明:外排序中的归并排序法和内排序中的归并法是类似的,都是由小单元逐渐归并成单元的过程,注意对比,加深理解。 归并排序算法分两个阶段: 1.初始归并段的形成 其过程是根据缓冲区大小,由文件输入(由外存读入内存)记录,当记录充满缓冲区后,选择最小的(以递增排序为例)记录输出(由内存写出到外存),其空缺位置由下一个输入记录来取代,输出的记录成为当前初始归并段的一部分。如果新输入的记录不能成为当前生成的归并段的一部分,即它比生成的当前部分归并段最大的记录要小(如例1中的关键字11,比15要小,不可能出现在当前归并段中),它将等待生成下一个归并段时提供选择。反复进行上述操作,直到所有新输入的记录关键字都小于最后输出记录的关键字时(如步骤9中的所有关键字都比83小,则以83为结尾的归并段生成完毕),就生成了一个初始归并段。接着继续生成下一个归并段,直到全部记录都处理完毕为止。 下面通过例题来具体说明一下。 例1.设输入文件的各个记录的关键字为: 15,19,04,83,12,27,11,25,16,34,26,07,10,90,06, ... ... 假设内存缓冲区可容纳4个记录,成初始归并段。如下表所示,给出了生成初始归并段过程中各步的缓冲区内容和输出结果。

最新自考02331数据结构试题及答案含评分标准资料

2018年10月高等教育自学考试全国统一命题考试 数据结构试卷 (课程代码02331) 本试卷共7页,满分l00分,考试时间l50分钟。 考生答题注意事项: 1.本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均可作草稿纸。2.第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。3.第二部分为非选择题。必须注明大、小题号,使用0.5毫米黑色字迹签字笔作答。 4.合理安排答题空间,超出答题区域无效。 第一部分选择题 一、单项选择题:本大题共l5小题,每小题2分,共30分。在每小题列出的备选项中 只有一项是最符合题目要求的。请将其选出。 1.下列数据结构中,逻辑结构不同的是 A.线性表 B.栈 C.队列 D.二叉树 2.将l6个数据元素的线性表按顺序存储方式存储在数组中,若第一个元素的存储地址是l000,第6个元素的存储地址是1040,则最后一个元素的存储地址是 A.1112 B.1120 C.1124 D.1128 3.设栈的初始状态为空,元素1,2,3,4,5依次入栈,不能得到的出栈序列是 A.1,2,3,4,5 B.4,5,3,2,1 C.1,2,5,4,3 D.1,2,5,3,4 4.设指针变量P指向非空单链表中的结点,next是结点的指针域,则判断P所指结点为尾结点前一个结点的逻辑表达式中,正确的是 A. p->next!=NULL&&p->next一>next->next == NULL B.p->next!=NULL&&p->next->next—NULL C.p->next->next==NULL D.p->next—NULL 5.已知广义表LS=(((a,b,c),d),(e,(fg,(h i))),LS的深度是 A.2 B.3 C.4 D.5 6.已知一棵完全二叉树T的第5层上共有5个叶结点,则T中叶结点个数最少是 A.5 8.8 C.10 D.27 7.已知二叉树T的前序遍历序列为a,b,c,e,d,中序遍历序列为C,e,b,d,a,则T 的后序遍历序列为 A.c,e,d,b,a B.d,e,c,b,a C.e,c,d,b,a D.e,c,b,a,d 8.有向图G有玎个顶点和e条边,G保存在邻接矩阵M中,M中0与1的个数差是 A.n(n+1)/2-e B.n(n+1)/2-2e C.n×n-e D.n×n-2e 9.有向图G中所有顶点的度数之和是24,则G中弧的数量是 A.10 B.12 C.14 D.16 10.设有向图G含有n个顶点、e条边,使用邻接表存储。对G进行深度优先搜索遍历算法的时间复杂度是 A.O(n) B.O(口) C.O(n+e) D.O(n×e) 11.对数据序列(26,14,17,12,7,4,3)采用二路归并排序进行升序排序,两趟排序后,得到的排序结果为 A.14,26,17,l2,4,7,3 B.12,l4,l7,26,3,4,7 C.14,26,12,l7,3,4,7 D.14,26,l2,l7,3,7,4

数据结构学习总结

数据结构学习总结 经过一学期的学习,我对数据结构有了我自己的认识。一开始,我以为它和C语言和C++一样,都是讲一门语言。但学习之后,发现事实并不是这样,在数据结构的学习中,有线性表,有队,有栈,有树,有图等等。这些看起来没有关系,其实之间有着千丝万缕的联系。线性表是其中最简单的,所以在前几章学习,后面依次逐章变难,学起来也很吃力。 《数据结构与算法》以基本数据结构和算法设计策略为知识单元,系统地介绍了数据结构的知识与应用、计算机算法的设计与分析方法,主要内容包括线性表、树、图和广义表、算法设计策略以及查找与排序算法等。 线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表的逻辑结构简单,便于实现和操作。因此,线性表这种数据结构在实际应用中是广泛采用的一种数据结构。线性表具有如下的结构特点:均匀性:虽然不同数据表的数据元素可以是各种各样的,但对于同一线性表的各数据元素必定具有相同的数据类型和长度。有序性:各数据元素在线性表中的位置只取决于它们的序号,数据元素之前的相对位置是线性的,即存在唯一的“第一个“和“最后一个”的数据元素,除了第一个和最后一个外,其它元素前面均只有一个数据元素直接前驱和后面均只有一个数据元素(直接后继)。在实现线性表数据元素的存储方面,一般可用顺序存储结构和链式存储结构两种方法。链式存储结构将在本网站线性链表中介绍,本章主要介绍用数组实现线性表数据元素的顺序存储及其应用。另外栈、队列和串也是线性表的特殊情况,又称为受限的线性结构。 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生

全国2012年10月自考数据结构(02331)试题及答案

全国2012年10月高等教育自学考试 数据结构试题 课程代码:02331 请考生按规定用笔将所有试题的答案涂、写在答题纸上。 选择题部分 注意事项: 1. 答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。 2. 每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。如需改动,用橡皮擦干净后,再选涂其他答案标号。不能答在试题卷上。 一、单项选择题(本大题共l5小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题 纸”的相应代码涂黑。错涂、多涂或未涂均无分。 1.一个算法的时间耗费的数量级称为该算法的 A.效率B.难度 C.可实现性D.时间复杂度 2.顺序表便于 A.插入结点B.删除结点 C.按值查找结点D.按序号查找结点 3.设带头结点的单循环链表的头指针为head,指针变量P指向尾结点的条件是 A.p->next->next==head B.p->next==head C.p->next->next==NULL D.p->next==NULL 4.设以数组A[0..m-1]存放循环队列,front指向队头元素,rear指向队尾元素的下一个位置,则当前队列中的元素个数为 A.(rear-front+m)%m B.rear-front+1 C.(front-rear+m)%m D.(rear-front)%m 5.下列关于顺序栈的叙述中,正确的是 A.入栈操作需要判断栈满,出栈操作需要判断栈空 B.入栈操作不需要判断栈满,出栈操作需要判断栈空 C.入栈操作需要判断栈满,出栈操作不需要判断栈空

操作系统可用来进行考研复习资料(1)

第八章死锁习题及答案 一、填空题 1.进程的“同步”和“互斥”反映了进程间① 和② 的关系。 【答案】①直接制约、②间接制约 【解析】进程的同步是指在异步环境下的并发进程因直接制约而互相发送消息,进行相互合作、相互等待,使得各进程按一定的速度执行的过程;而进程的互斥是由并发进程同时共享公有资源而造成的对并发进程执行速度的间接制约。 2.死锁产生的原因是① 和② 。 【答案】①系统资源不足、②进程推进路径非法 【解析】死锁产生的根本原因是系统的资源不足而引发了并发进程之间的资源竞争。由于资源总是有限的,我们不可能为所有要求资源的进程无限地提供资源。而另一个原因是操作系统应用的动态分配系统各种资源的策略不当,造成并发进程联合推进的路径进入进程相互封锁的危险区。所以,采用适当的资源分配算法,来达到消除死锁的目的是操作系统主要研究的课题之一。 3.产生死锁的四个必要条件是① 、② 、③ 、 ④ 。 【答案】①互斥条件、②非抢占条件、③占有且等待资源条件、④循环等待条件 【解析】 互斥条件:进程对它所需的资源进行排它性控制,即在一段时间内,某资源为一进程所独占。 非抢占条件:进程所获得的资源在未使用完毕之前,不能被其它进程强行夺走,即只能由获得资源的进程自己释放。 占有且等待资源条件:进程每次申请它所需的一部分资源,在等待新资源的同时,继续占有已分配到的资源, 循环等待条件:存在一进程循环链,链中每一个进程已获得的资源同时被下一个进程所请求。 4.在操作系统中,信号量是表示① 的物理实体,它是一个与② 有关的整型变量,其值仅能由③ 原语来改变。 【答案】①资源,②队列,③P-V 【解析】信号量的概念和 P-V原语是荷兰科学家 E.W.Dijkstra提出来的。信号量是一个特殊的整型量,它与一个初始状态为空的队列相联系。信号量代表了资源的实体,操作系统利用它的状态对并发进程共享资源进行管理。信号量的值只能由P-V原语来改变。 5.每执行一次P原语,信号量的数值S减1。如果S>=0,该进程① ;若S<0,则② 该进程,并把它插入该③ 对应的④ 队列中。 【答案】①继续执行,②阻塞(等待),③信号量,④阻塞(等待) 【解析】从物理概念上讲,S>0时的数值表示某类资源可用的数量。执行 一次P原语,意味着请求分配一个单位的资源,因此描述为S=S-1。当S<0时,表示已无资源,这时请求资源的进程将被阻塞,把它排在信号量S的等待队列中。此时,S的绝对值等于信号量队列上的阻塞的进程数目。

2021年自考02331数据结构重点总结最终修订

自考02331数据构造重点总结(最后修订) 第一章概论 1.瑞士计算机科学家沃思提出:算法+数据构造=程序。算法是对数据运算描述,而数据构造涉及逻辑构造和存储构造。由此可见,程序设计实质是针对实际问题选取一种好数据构造和设计一种好算法,而好算法在很大限度上取决于描述实际问题数据构造。 2.数据是信息载体。数据元素是数据基本单位。一种数据元素可以由若干个数据项构成,数据项是具备独立含义最小标记单位。数据对象是具备相似性质数据元素集合。 3.数据构造指是数据元素之间互有关系,即数据组织形式。 数据构造普通涉及如下三方面内容:数据逻辑构造、数据存储构造、数据运算 ①数据逻辑构造是从逻辑关系上描述数据,与数据元素存储构造无关,是独立于计算机。 数据逻辑构造分类:线性构造和非线性构造。 线性表是一种典型线性构造。栈、队列、串等都是线性构造。数组、广义表、树和图等数据构造都是非线性构造。 ②数据元素及其关系在计算机内存储方式,称为数据存储构造(物理构造)。 数据存储构造是逻辑构造用计算机语言实现,它依赖于计算机语言。 ③数据运算。最惯用检索、插入、删除、更新、排序等。 4.数据四种基本存储办法:顺序存储、链接存储、索引存储、散列存储 (1)顺序存储:普通借助程序设计语言数组描述。 (2)链接存储:普通借助于程序语言指针来描述。 (3)索引存储:索引表由若干索引项构成。核心字是能唯一标记一种元素一种或各种数据项组合。 (4)散列存储:该办法基本思想是:依照元素核心字直接计算出该元素存储地址。 5.算法必要满足5个准则:输入,0个或各种数据作为输入;输出,产生一种或各种输出;有穷性,算法执行有限步后结束;拟定性,每一条指令含义都明确;可行性,算法是可行。 算法与程序区别:程序必要依赖于计算机程序语言,而一种算法可用自然语言、计算机程序语言、数学语言或商定符号语言来描述。当前惯用描述算法语言有两类:类Pascal和类C。 6.评价算法优劣:算法"对的性"是一方面要考虑。此外,重要考虑如下三点: ①执行算法所耗费时间,即时间复杂性; ②执行算法所耗费存储空间,重要是辅助空间,即空间复杂性; ③算法应易于理解、易于编程,易于调试等,即可读性和可操作性。

2018北大计算机考研经验分享

2018北大计算机考研经验分享 我本科毕业于北京科技大学计算机科学与技术专业,研究生将就读于北京大学计算机技术专业。初试考研总分接近370+分,计算机基础综合135分,在专业课上算是有些心得吧。 写这篇经验贴的初衷一是看过很多经验贴,都是比较散乱的回顾+感受,没有系统的复习方法;二是我在新祥旭考研一对一做专业课辅导老师,算是给自己打个广告吧,多说一句,我主要是针对考北大计算机专业的学生。当然,虽然打了一下广告,但是这篇帖子的经验还是希望大家认真看,我觉得还是能够对学弟学妹们有所裨益的。 ,下面主要和大家聊一聊北大计算机考研的情况,政治、英语、数学这些课我就不多说了,这几门课程的资料、老师都是比较成熟且成功的,大家在网上多看看就知道怎么回事了。今天,主要是说专业课以及北大计算机的招录情况。 【北大招录情况】 2018年北大软微计算机技术复试线:复试线为300分,单科线也是50+80。具体的招录比现在基本是没有相关数据的,但是招生人数还是可查的,根据软微学院官网数据:整个软件与微电子学院招收全日制654人,非全日制156人。其中计算机技术专业全日制招生310人,

包含推免生接近70人,留给其他考生的名额为240左右。 总之,现在是大数据时代,北大计算机技术的关注度也越来越高,所以以后考研竞争难度也会越来越大。 【参考书目】 822计算机基础综合 专业课教材 《数据结构》(C语言版)严蔚敏清华大学出版社 《计算机操作系统》汤子瀛西安电子科技大学出版社 《计算机网络》谢希仁电子工业出版社 《计算机组成原理》唐朔飞高等教育出版社 专业辅导书: 王道系列 《数据结构考研复习指导》 《计算机组成原理考研复习指导》 《操作系统考研复习指导》 《计算机网络考研复习指导》 《计算机专业基础综合考试指导全书》 《计算机专业基础综合考试名校真题精析》 《计算机专业基础综合考试最后8套模拟题》

02331数据结构2014年4 月份历年真题附答案

全国2014年4月高等教育自学考试 数据结构试题 课程代码:02331 本试卷满分100分,考试时间150分钟. 考生答题注意事项: 1.本卷所有试题必须在答题卡上作答。答在试卷上无效。试卷空白处和背面均可作草稿纸。 2.第一部分为选择题。必须对应试卷上的题号使用28铅笔将“答题卡”的相应代码涂黑。 3.第二部分为非选择题。必须注明大、小题号,使用0.5毫米黑色字迹签字笔作答。 4.合理安排答题空间。超出答题区域无效。 第一部分选择题 一、单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。错涂、多涂或未涂均无分。 1.与数据存储结构无关 ..的概念是 A.栈 B.链表 C.顺序表 D.二叉链表 2.顺序表中有10个数据元素,若第一个元素的存储地址是1000,则最后一个元素地址是1036,第5个元素的地址是 A.1010 B.1016 C.1018 D.1019 3.设栈的初始状态为空,元素1、2、3、4、5、6依次入栈,得到的出栈序列是(2,4,3,6,5,1),则栈的容量至少是 A.2 B.3 C.4 D..6 4.下列关于队列的叙述中,错误 ..的是 A.队列是一种先进先出的线性表 B.队列是一种后进后出的线性表 C.循环队列中进行出队操作时要判断队列是否为空 D.在链队列中进行入队操作时要判断队列是否为满 5.对稀疏矩阵进行压缩存储的目的是 A.便于运算 B.节省存储空间 C.便于输入输出 D.降低时间复杂度 6.一棵二叉树的第7层上最多含有的结点数为 A.14 B.64 C.127 D.128 7.下列选项为完全二叉树的是

数据结构复习笔记

第一章概论 1.数据:信息的载体,能被计算机识别、存储和加工处理。 2.数据元素:数据的基本单位,可由若干个数据项组成,数据项是具有独立含义的最小标识单位。 3.数据结构:数据之间的相互关系,即数据的组织形式。 它包括:1)数据的逻辑结构,从逻辑关系上描述数据,与数据存储无关,独立于计算机; 2)数据的存储结构,是逻辑结构用计算机语言的实现,依赖于计算机语言。 3)数据的运算,定义在逻辑结构上,每种逻辑结构都有一个运算集合。常用的运算:检索/插入/删除/更新/排序。 4.数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。数据的存储结构是逻辑结构用计算机语言的实现。 5.数据类型:一个值的集合及在值上定义的一组操作的总称。分为:原子类型和结构类型。 6.抽象数据类型:抽象数据的组织和与之相关的操作。优点:将数据和操作封装在一起实现了信息隐藏。 7. 抽象数据类型ADT:是在概念层上描述问题;类:是在实现层上描述问题;在应用层上操作对象(类的实例)解决问题。 8.数据的逻辑结构,简称为数据结构,有: (1)线性结构,若结构是非空集则仅有一个开始和终端结点,并且所有结点最多只有一个直接前趋和后继。 (2)非线性结构,一个结点可能有多个直接前趋和后继。 9.数据的存储结构有: 1)顺序存储,把逻辑相邻的结点存储在物理上相邻的存储单元内。 2)链接存储,结点间的逻辑关系由附加指针字段表示。 3)索引存储,存储结点信息的同时,建立附加索引表,有稠密索引和稀疏索引。 4)散列存储,按结点的关键字直接计算出存储地址。 10.评价算法的好坏是:算法是正确的;执行算法所耗的时间;执行算法的存储空间(辅助存储空间);易于理解、编码、调试。

面经笔记数据结构

数据结构及算法知识 1.字典树构造及其优化与应用 字典树的核心就是空间换时间,利用字符串的公共前缀来避免无谓的字符串比较,降低查询时间 性质: - 根结点不包含字符,除了根结点每个结点都包含一个字符 - 从根结点到某一结点的路径经过的字符连接起来就是该结点对于的字符串 - 查询和建树可以同时进行 有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词。 思路:首先要求得每个词的频率,1G无法放入内存,需要分成多个小文件,对每个小文件的词进行统计 (1)散列分治:顺序读取文件,对每个词,可以hash(x)P00(只要不小于1024个文件,是为了保证每个小文件可以放入内存),这样被映射为5000个小文件,每个文件大概200K,每个文件最少1250个单词 (2)对于每个小文件,利用hash_map/字典树记录每个单词出现的频率,(3)用100个元素的最小堆,选出每个文件中的频率最大的100个单词 (4)对这5000个小文件进行归并排序,选出最大的100个。 2.大规模文本文件,全是单词,求前10词频的单词(Top k问题是热门问题)

3.如何判断时间,空间复杂度是否为O(logn) 最直观的判断就是程序中采用了二分,且二分后只运算数据的一半。但如果两部分都运算的话,时间复杂度就是O(nlogn)了。其实不一定是二分,只不过二分比较常用罢了 4.各个算法的时间和空间复杂度 5.M个有序链表取前k大个元素

6.红黑树的调整 红黑树是一种近似平衡的二叉查找树,它能够确保任何一个节点的左右子树的高度差不会超过二者中较低那个的一倍 1.每个节点要么是红色,要么是黑色。 2.根节点必须是黑色 3.红色节点不能连续(也即是,红色节点的孩子和父亲都不能是红色)。 4.对于每个节点,从该点至null(树尾端)的任何路径,都含有相同个数的黑色节点。 在树的结构发生改变时(插入或者删除操作),往往会破坏上述条件3或条件4,需要通过调整使得查找树重新满足红黑树的条件。 调整可以分为两类:一类是颜色调整,即改变某个节点的颜色;另一类是结构调整,即改变检索树的结构关系。结构调整过程包含两个基本操作:左旋(Rotate Left),右旋(RotateRight)。

操作系统第一章笔记

第一章操作系统引论 1、Android DOS LINUX WINDOWS Symbian iOS UNIX CentOS是操作系统 2、计算机系统的组成 计算机系统:计算机硬件:运算器、控制器、存储器、输入设备、输出设备 计算机软件:包括操作系统 3、相关概念 裸机:没有配置任何软件的计算机。 软件:是在硬件基础之上对硬件的性能加以扩充和完善。 虚拟机:一个裸机在每加上一层软件后,就变成了一个功能更强的机器,我们把这种“功能更强的机器”称之为“虚拟机”或“扩展机”。 4、操作系统的定义 操作系统(operating system,简称OS)操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。操作系统是系统软件的核心。 5、操作系统的目标 (1).方便性:用户通过命令使用计算机 (2).有效性:保持忙碌且内外存数据有序,节省空间 (3).可扩充性:采用层次化结构便于增加和修改 (4).开放性:遵循OSI国际标准彼此兼容实现互连 6、操作系统的作用 (1)OS作为用户与计算机硬件系统的接口 (2)OS作为计算机系统资源的管理者 (3)OS用作扩充机器 7、推动操作系统发展的主要动力 ?不断提高计算机资源利用率 ?方便用户 ?器件的不断更新换代 ?计算机体系结构的不断发展 ?不断的提出新的要求 8、计算机的发展过程 计算机发展分为四个阶段: ?1946~50年代末:第一代,电子管时代,无操作系统。 ?50年代末~60年代中:第二代,晶体管时代,批处理系统。 ?60年代中~70年代中:第三代:集成电路时代,多道程序设计。 ?70年代中期~至今:第四代:大规模、超大规模集成电路时代,分时系统。 9、操作系统的发展过程 (1). 人工操作方式 电子管计算机,无操作系统,由手工控制作业的输入输出,通过控制台开关启动 程序运行。 人工操作方式的缺点: 用户独占全机。计算机及其全部资源只能由上机用户独占。

自考02331数据结构重点总结(最终修订)

自考02331数据结构重点总结(最终修订) 第一章概论 1.瑞士计算机科学家沃思提出:算法+数据结构=程序。算法是对数据运算的描述,而数据结构包括逻辑结构和存储结构。由此可见,程序设计的实质是针对实际问题选择一种好的数据结构和设计一个好的算法,而好的算法在很大程度上取决于描述实际问题的数据结构。 2.数据是信息的载体。数据元素是数据的基本单位。一个数据元素可以由若干个数据项组成,数据项是具有独立含义的最小标识单位。数据对象是具有相同性质的数据元素的集合。 3.数据结构指的是数据元素之间的相互关系,即数据的组织形式。 数据结构一般包括以下三方面内容:数据的逻辑结构、数据的存储结构、数据的运算 ①数据的逻辑结构是从逻辑关系上描述数据,与数据元素的存储结构无关,是独立于计算机的。 数据的逻辑结构分类:线性结构和非线性结构。 线性表是一个典型的线性结构。栈、队列、串等都是线性结构。数组、广义表、树和图等数据结构都是非线性结构。 ②数据元素及其关系在计算机内的存储方式,称为数据的存储结构(物理结构)。 数据的存储结构是逻辑结构用计算机语言的实现,它依赖于计算机语言。 ③数据的运算。最常用的检索、插入、删除、更新、排序等。 4.数据的四种基本存储方法:顺序存储、链接存储、索引存储、散列存储 (1)顺序存储:通常借助程序设计语言的数组描述。 (2)链接存储:通常借助于程序语言的指针来描述。 (3)索引存储:索引表由若干索引项组成。关键字是能唯一标识一个元素的一个或多个数据项的组合。 (4)散列存储:该方法的基本思想是:根据元素的关键字直接计算出该元素的存储地址。 5.算法必须满足5个准则:输入,0个或多个数据作为输入;输出,产生一个或多个输出;有穷性,算法执行有限步后结束;确定性,每一条指令的含义都明确;可行性,算法是可行的。 算法与程序的区别:程序必须依赖于计算机程序语言,而一个算法可用自然语言、计算机程序语言、数学语言或约定的符号语言来描述。目前常用的描述算法语言有两类:类Pascal和类C。 6.评价算法的优劣:算法的"正确性"是首先要考虑的。此外,主要考虑如下三点: ①执行算法所耗费的时间,即时间复杂性; ②执行算法所耗费的存储空间,主要是辅助空间,即空间复杂性; ③算法应易于理解、易于编程,易于调试等,即可读性和可操作性。

相关文档
最新文档