华师大ECNU考研839数据结构-2011

华师大ECNU考研839数据结构-2011
华师大ECNU考研839数据结构-2011

考研数据结构必须掌握的知识点与算法-打印版

《数据结构》必须掌握的知识点与算法 第一章绪论 1、算法的五个重要特性(有穷性、确定性、可行性、输入、输出) 2、算法设计的要求(正确性、可读性、健壮性、效率与低存储量需求) 3、算法与程序的关系: (1)一个程序不一定满足有穷性。例操作系统,只要整个系统不遭破坏,它将永远不会停止,即使没有作业需要处理,它仍处于动态等待中。因此,操作系统不是一个算法。 (2)程序中的指令必须是机器可执行的,而算法中的指令则无此限制。算法代表了对问题的解,而程序则是算法在计算机上的特定的实现。 (3)一个算法若用程序设计语言来描述,则它就是一个程序。 4、算法的时间复杂度的表示与计算(这个比较复杂,具体看算法本身,一般关心其循环的次数与N的关系、函数递归的计算) 第二章线性表 1、线性表的特点: (1)存在唯一的第一个元素;(这一点决定了图不是线性表) (2)存在唯一的最后一个元素; (3)除第一个元素外,其它均只有一个前驱(这一点决定了树不是线性表) (4)除最后一个元素外,其它均只有一个后继。 2、线性表有两种表示:顺序表示(数组)、链式表示(链表),栈、队列都是线性表,他们都可以用数组、链表来实现。 3、顺序表示的线性表(数组)地址计算方法: (1)一维数组,设DataType a[N]的首地址为A0,每一个数据(DataType类型)占m个字节,则a[k]的地址为:A a[k]=A0+m*k(其直接意义就是求在数据a[k]的前面有多少个元素,每个元素占m个字节) (2)多维数组,以三维数组为例,设DataType a[M][N][P]的首地址为A000,每一个数据(DataType 类型)占m个字节,则在元素a[i][j][k]的前面共有元素个数为:M*N*i+N*j+k,其其地址为: A a[i][j][k]=A000+m*(M*N*i+N*j+k); 4、线性表的归并排序: 设两个线性表均已经按非递减顺序排好序,现要将两者合并为一个线性表,并仍然接非递减顺序。可见算法2.2 5、掌握线性表的顺序表示法定义代码,各元素的含义; 6、顺序线性表的初始化过程,可见算法2.3 7、顺序线性表的元素的查找。 8、顺序线性表的元素的插入算法,注意其对于当原来的存储空间满了后,追加存储空间(就是每次增加若干个空间,一般为10个)的处理过程,可见算法2.4 9、顺序线性表的删除元素过程,可见算法2.5 10、顺序线性表的归并算法,可见算法2.7 11、链表的定义代码,各元素的含义,并能用图形象地表示出来,以利分析; 12、链表中元素的查找 13、链表的元素插入,算法与图解,可见算法2.9 14、链表的元素的删除,算法与图解,可见算法2.10 15、链表的创建过程,算法与图解,注意,链表有两种(向表头生长、向表尾生长,分别用在栈、队列中),但他们的区别就是在创建时就产生了,可见算法2.11 16、链表的归并算法,可见算法2.12 17、建议了解所谓的静态单链表(即用数组的形式来实现链表的操作),可见算法2.13 18、循环链表的定义,意义 19、循环链表的构造算法(其与单链表的区别是在创建时确定的)、图解

2015年南京邮电大学数据结构初试真题

2015年南京邮电大学数据结构考研初试题目 判断题(共15题*2分) 1.消除递归不一定需要使用栈,此说法() 2.稀疏矩阵压缩存储后,必会失去随机存取功能() 3.完全二叉树中,若一个结点没有左孩子,则它必是叶结点() 4.连通分量是无向图的极大强连通子图() 5.在9阶B-树中,除叶子以外的任意结点的分支数介于5和9之间() 6.在平衡二叉树中,向某个平衡因子不为零的结点的树中插入一新结点,必引起平衡旋转() 7.10个叶子结点的哈弗曼树,其高度最小为58.队列和栈不可以使用散列存储() 选择题(共15题*2分) 1.以下属于逻辑结构的是()。 A.顺序表B.哈希表 C.有序表 D.单链表 2.下列数据中,()是非线性数据结构。 A.栈B.队列C.完全二叉树D.堆 3.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()储方式最节省运算时间。 A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表 4.循环队列存储在数组A[0..m]中,则入队时的操作为()。 A.rear=rear+1 B.rear=(rear+1)mod(m-1)

C.rear=(rear+1)mod m D.rear=(rear+1)mod(m+1) 5.二叉树在线索后,仍不能有效求解的问题是()。 A.先序线索二叉树中求先序后继B.中序线索二叉树中求中序后继C.中序线索二叉树中求中序前驱D.后序线索二叉树中求后序后继6.下面几个符号串编码集合中,不是前缀编码的是()。 A.{0,10,110,1111}B.{11,10,001,101,0001} C.{00,010,0110,1000} D.{b,c,aa,ac,aba,abb,abc} 7.用有向无环图描述表达式(A+B)*((A+B)/A),至少需要顶点的数目为()。 A.5B.6C.8D.9 8.下列关于AOE网的叙述中,不正确的是()。 A.关键活动不按期完成就会影响整个工程的完成时间 B.任何一个关键活动提前完成,那么整个工程将会提前完成 C.所有的关键活动提前完成,那么整个工程将会提前完成 D.某些关键活动提前完成,那么整个工程将会提前完成 9.m阶B-树是一棵() A.m叉排序树 B.m叉平衡排序树 C.m-1叉平衡排序树 D.m+1叉平衡排序树 10.关于杂凑查找说法不正确的有几个()【南京理工大学2000一、16(1.5分)】 A.采用链地址法解决冲突时,查找一个元素的时间是相同的

南京邮电大学2005年数据结构考研试卷

南 京 邮 电 学 院 2005年攻读硕士学位研究生入学考试 数 据 结 构 试 题 一、单选题(每题3分,共30分) 1. 设使用某算法对n 个元素进行处理,所需的时间是 T(n) = 100n log 2n + 200n + 2000 则该算法的渐进时间复杂度为 。 A. O(1) B. O(n) C. O(200n) D. O(nlog 2n) 2. 设顺序表的长度为n ,并设从表中删除元素的概率相等。则在平均情况下,从表中删除一个元素需要移动的元素个数是 。 A. (n -1)/2 B. n/2 C. n(n -1)/2 D. n(n +1)/2 3. 如果只保存一个n 阶对称矩阵a 的下三角元素(含对角线元素),并采用行主序存储在一维数组b 中,a[i][j](或a[i, j])存于b[k],则对i

2018考研计算机:数据结构重难点及复习建议

2018考研计算机:数据结构重难点及 复习建议 新东方在线推荐: 一、重难点解析和复习建议 数据结构的考查目标定位为掌握数据结构的基本概念、基本原理和基本方法,掌握数据的逻辑结构、存储结构以及基本操作的实现;能够对算法进行基本的时间复杂度和空间复杂度的分析;能够运用数据结构的基本原理和方法进行问题的分析求解,具备采用C、C++或JAVA语言设计程序与实现算法的能力。 当然,考生也不必因此而专门复习一遍C或C++程序设计,毕竟复习时间有限,而且数据结构要求的重点在于算法设计的能力,而不是编写代码的能力,因此,只要能用类似伪代码的形式把思路表达清楚就行,不用强求写出一个没有任何语法错误的程序。 下面我们来解析一下知识点: 线性表这一章里面的知识点不多,但要做到深刻理解,能够应用相关知识点解决实际问题。链表上插入、删除节点时的指针操作是选择题的一个常考点,诸如双向链表等一些相对复杂的链表上的操作也是可以出现在综合应用题当中的。 栈、队列和数组可以考查的知识点相比链表来说要多一些。最基本的,是栈与队列FILO和FIFO的特点。比如针对栈FILO的特点,进栈出栈序列的问题常出现在选择题中。其次,是栈和队列的顺序和链式存储结构,这里一个常考点是不同存储结构下栈顶指针、队首指针以及队尾指针的操作,特别是循环队列判满和判空的2种判断方法。再次,是特殊矩阵的压缩存储,这个考点复习的重点可以放在二维矩阵与一维数组相互转换时,下标的计算方法,比如与对角线平行的若干行上数据非零的矩阵存放在一维数组后,各个数据点相应的下标的计算。这一章可能的大题点,在于利用堆栈或队列的特性,将它们作为基础的数据结构,支持实际问题求解算法的设计,例如用栈解决递归问题,用队列解决图的遍历问题等等。 树和二叉树:这一章中我们从顺序式的数据结构,转向层次式的数据结构,要掌握树、二叉树的各种性质、树和二叉树的不同存储结构、森林、树和二叉树之间的转换、线索化二叉树、二叉树的应用(二叉排序树、平衡二叉树和Huffman树),重点要熟练掌握的,是森林、树以及二叉树的前中后三种遍历方式,要能进行相应的算法设计。这一部分是数据结构考题历来的重点和难点,复习时要特别关注。一些常见的选择题考点包括:满二叉树、完全二叉树节点数的计算,由树、二叉树的示意图给出相应的遍历序列,依据二叉树的遍历序列还原二叉树,线索化的实质,计算采用不同的方法线索化后二叉树剩余空指针域的个数,平衡二叉树的定义、性质、建立和四种调整算法以及回溯法相关的问题。常见的综合应用题考点包括:二叉树的遍历算法,遍历基础上针对二

暨南大学2018考研真题之830数据结构

暨南大学2018考研真题之830数据结构考生注意:所有答案必须写在答题纸(卷)上,写在本试题上一律不给分。 一、单项选择题(每题2分,共30分) 1. 任何一棵二叉树T, 如果度为1的结点数为2,度为0结点数为11,其分支数为( ) 。 A. 23 B. 22 C. 24 D. 21 2. 深度为k的二叉树至多有( ) 个结点(k>=1); A. 2k B. 2k-1 C. 2k+1 D.2k-1 3. 已知一棵二叉树结点的中序序列为BDCEAFHG, 后序序列为DECBHGFA, 则结点的先序序列为( ) 。 A. ABCDEFGH B. DGBFHCA C. DECBGFAH D. CAFHGDB 4. 在有向图的逆邻接表存储结构中,顶点v在表结点中出现的次数是()。 A. 顶点V的度 B. 顶点V的出度 C. 顶点V的入度 D. 依附于顶点V的边数 5. 顺序栈s的GetTop(s, e)操作是用e返回s的栈顶元素,则下列( )是正确的操作。 A. e=*(s.top) B. e=*(s.top-1) C. e=*(--s.top) D. e=s.top-1

A. 32 B. 33 C. 34 D. 40 11. 用带头结点的单链表存储队列,其队头指针指向头结点,队尾指针指向队尾结点,则在进行出队时()。 A. 仅修改队头指针 B. 仅修改队尾指针 C. 对头、尾指针都要修改 D. 对头、尾指针都可能要修改 12. 由权为7,2,4,5的四个叶子结点构造一个哈夫曼树,该树的带权路径长度为()。 A. 33 B. 36 C. 35 D. 34 13. 现有一"遗传"关系:设x是y的父亲,则x可以把它的属性遗传给y。表示该遗传关系最适合的数据结构为( ) 。 A.向量 B.图 C.树 D.二叉树 14. 线性表是具有n个 ( )的有限序列。 A. 表元素 B. 字符 C. 数据元素 D. 数据项 15. 在所有排序方法中,关键字的比较次数与记录的初始排列无关的是()。 A. 希尔排序 B. 冒泡排序 C. 直接插入排序 D. 直接选择排序 二.填空题(每空2分,共20分) 1. 单链表中设置头结点的作用是。

计算机数据结构考研真题及其答案

第1章绪论 一、选择题 1. 算法的计算量的大小称为计算的()。【北京邮电大学2000 二、3 (20/8分)】 A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于()【中科院计算所 1998 二、1 (2分)】 A.问题的规模 B. 待处理数据的初态 C. A和B 3.计算机算法指的是(1),它必须具备(2)这三个特性。 (1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法 (2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性 C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性 【南京理工大学 1999 一、1(2分)【武汉交通科技大学 1996 一、1( 4分)】 4.一个算法应该是()。【中山大学 1998 二、1(2分)】 A.程序 B.问题求解步骤的描述 C.要满足五个基本特性D.A和C. 5. 下面关于算法说法错误的是()【南京理工大学 2000 一、1(1.5分)】 A.算法最终必须由计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的 C. 算法的可行性是指指令不能有二义性 D. 以上几个都是错误的 6. 下面说法错误的是()【南京理工大学 2000 一、2 (1.5分)】 (1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法 (3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低 A.(1) B.(1),(2) C.(1),(4) D.(3) 7.从逻辑上可以把数据结构分为()两大类。【武汉交通科技大学 1996 一、4(2分)】 A.动态结构、静态结构 B.顺序结构、链式结构

数据结构A复习要点及样题(南邮)

数据结构A复习要点 第1章基础知识 算法与数据结构(数据结构概念、逻辑结构、数据存储结构示等) 数据抽象和抽象数据类型(数据结构规范、实现) 算法分析的基本方法(时间复杂性、空间复杂性) 第2章线性表 线性表的顺序和链接表示 理解在顺序表、单链表上实现线性表运算,能设计相应算法程序 顺序和链接表示的优缺点比较 第3章堆栈和队列 了解栈和队列的概念、特点 理解顺序栈和循环队列运算的实现 中缀表达式与后缀表达式的转换 后缀表达式计算 第4章数组和字符串 一般数组存储方法 三元组存储稀疏矩阵的方法 三元组表示的快速矩阵转置方法 字符串的概念、KMP算法及其改进 第5章树 二叉树的定义、性质及二叉链表 理解二叉树的遍历算法(遍历结果、算法设计),能设计相应算法程序 堆、堆的建立和调整 森林与二叉树的相互转换 哈夫曼树构造、哈夫曼编码、WPL计算 第6章集合与搜索 理解有序表的顺序搜索算法 理解对半搜索算法 平均搜索长度的计算 第7章搜索树 理解二叉搜索树的定义、性质和插入、删除算法 二叉平衡树的定义及插入算法 B-树的定义和插入、删除方法 第8章散列表 掌握散列函数的相关概念 散列函数 解决冲突的开地址法(线性探查法,二次探查法、双散列法) 第9章图 图的基本概念和存储结构 理解图的算法(结果):遍历、拓扑排序、最小代价生成树、关键路径、最短路径第10章内排序 三种简单排序算法、快速排序和两路合并排序算法、过程、结果 排序算法的时间复杂度(最好、最差,平均)、稳定性 第11章文件 文件的基本概念 初始游程的生成及竞赛树

考试样题 填空题 写出表达式a*b+c/d的后缀形式________。 已知一无向图G=(V,E),其中V={a,b,c,d,e},E={(a,b), (a,d), (a,c) (d,c), (b,e)},现用某一种遍历方法从顶点a开始遍历图,得到的序列为abecd,则采用的是__________遍历方法。 在顺序表长度为n中,平均在表中插入一个元素需要移动元素的个数可用计算公式为________。 一个表长为n的线性表,其排序时间最快为。 选择题 具有n 个顶点的有向完全图中,边的总数为()条。 A)n(n+1) B)n(n-1) C)n(n-1)/2 D)n(n+1)/2 设一个栈输入序列是1、2、3、4、5,则下列序列中不可能是栈的输出序列是()。 A)32541 B)15432 C)14523 D)23145 二叉树的前序遍历为EFHIGJK,中序遍历序列为HFIEJKG。该二叉树根结点的右子树的根是() A) E B) F C) G D) H 对有14个元素的有序表A[1]-A[14]作对半查找,查找元素A[4]时的被比较元素依次为() A. A[1],A[2],A[3],A[4] B.A[7],A[3],A[5],A[4] C. A[1],A[2],A[7],A[4] D.A[7],[A5],A[3],A[4] 设有一个长度为100且已排好序的表,用对半搜索进行查找,若搜索不成功,则至少要比较______次。 () A.9 B.8 C.7 D.6 简答题 用一维数组存放的一棵完全二叉树如图所示: 图 写出前序、中序、后序遍历该二叉树时访问结点的顺序。 图的邻接表表示一个给定的无向图。 (1)给出从顶点v1开始,用深度优先搜索法进行遍历时的顶点序列; (2)给出从顶点v1开始,用广度优先搜索法进行遍历时的顶点序列。

考研数据结构图的必背算法及知识点

1.最小生成树:无向连通图的所有生成树中有一棵边的权值总和最小的生成树 1.1 问题背景: 假设要在n个城市之间建立通信联络网,则连通n个城市只需要n—1条线路。这时,自然会考虑这样一个问题,如何在最节省经费的前提下建立这个通信网。在每两个城市之间都可以设置一条线路,相应地都要付出一定的经济代价。n个城市之间,最多可能设置n(n-1)/ 2条线路,那么,如何在这些可能的线路中选择n-1条,以使总的耗费最少呢? 1.2 分析问题(建立模型): 可以用连通网来表示n个城市以及n个城市间可能设置的通信线路,其中网的顶点表示城市,边表示两城市之间的线路,赋于边的权值表示相应的代价。对于n个顶点的连通网可以建立许多不同的生成树,每一棵生成树都可以是一个通信网。即无向连通图的生成树不是唯一的。连通图的一次遍历所经过的边的集合及图中所有顶点的集合就构成了该图的一棵生成树,对连通图的不同遍历,就可能得到不同的生成树。 图 G5无向连通图的生成树为(a)、(b)和(c)图所示: G5 G5的三棵生成树:

可以证明,对于有n 个顶点的无向连通图,无论其生成树的形态如何,所有生成树中都有且仅有n-1 条边。 1.3最小生成树的定义: 如果无向连通图是一个网,那么,它的所有生成树中必有一棵边的权值总和最小的生成树,我们称这棵生成树为最小生成树,简称为最小生成树。 最小生成树的性质: 假设N=(V,{ E}) 是个连通网,U是顶点集合V的一个非空子集,若(u,v)是个一条具有最小权值(代价)的边,其中, 则必存在一棵包含边(u,v)的最小生成树。 1.4 解决方案: 两种常用的构造最小生成树的算法:普里姆(Prim)和克鲁斯卡尔(Kruskal)。他们都利用了最小生成树的性质 1.普里姆(Prim)算法:有线到点,适合边稠密。时间复杂度O(N^2)

最新数据结构考研大纲资料

数据结构考研大纲 【硕士研究生考试】 Ⅰ考查目标 计算机学科专业基础综合考试涵盖数据机构、计算机组成原理、操作系统和计算机网络等学科专业基础课程。要求考生比较系统地掌握上述专业基础课程的概念、基本原理和方法,能够运用所学的基本原理和基本方法分析、判断和解决有关理论问题和实际问题。 Ⅱ考试形式和试卷结构 一、试卷满分及考试时间本试卷满分为150分,考试时间为180分钟 二、答题方式答题方式为闭卷、笔试 三、试卷内容结构 数据结构45分计算机组成原理45分 操作系统35分计算机网络25分 四、试卷题型结构单项选择题80分(40小题,每小题2分)综合应用题70分 数据结构 【考查目标】 1.理解数据结构的基本概念;掌握数据的逻辑结构、存储结构及其差异,以及各种基本操作的实现。 2.掌握基本的数据处理原理和方法的基础上,能够对算法进行设计与分析。 3.能够选择合适的数据结构和方法进行问题求解。 一、线性表 (一)线性表的定义和基本操作 (二)线性表的实现 1.顺序存储结构 2.链式存储结构 3.线性表的应用 二、栈、队列和数组 (一)栈和队列的基本概念 (二)栈和队列的顺序存储结构 (三)栈和队列的链式存储结构 (四)栈和队列的应用 (五)特殊矩阵的压缩存储 三、树与二叉树 (一)树的概念 (二)二叉树 1.二叉树的定义及其主要特征 2.二叉树的顺序存储结构和链式存储结构 3.二叉树的遍历 4.线索二叉树的基本概念和构造 5.二叉排序树 6.平衡二叉树 (三)树、森林

1.书的存储结构 2.森林与二叉树的转换 3.树和森林的遍历 (四)树的应用 1.等价类问题 2.哈夫曼(Huffman)树和哈夫曼编码 四、图 (一)图的概念 (二)图的存储及基本操作 1. 邻接矩阵法 2. 邻接表法 (三)图的遍历 1. 深度优先搜索 2. 广度优先搜索 (四)图的基本应用及其复杂度分析 1. 最小(代价)生成树 2. 最短路径 3. 拓扑排序 4. 关键路径 五、查找 (一)查找的基本概念 (二)顺序查找法 (三)折半查找法 (四)B-树 (五)散列(Hash)表及其查找(六)查找算法的分析及应用 六、内部排序 (一)排序的基本概念 (二)插入排序 1. 直接插入排序 2. 折半插入排序 (三)气泡排序(bubble sort)(四)简单选择排序 (五)希尔排序(shell sort)(六)快速排序 (七)堆排序 (八)二路归并排序(merge sort)(九)基数排序 (十)各种内部排序算法的比较(十一)内部排序算法的应用

2001年南邮考研数据结构考研试卷

南 京 邮 电 学 院 2001年攻读硕士学位研究生入学考试 数 据 结 构 试 题 一、完成下列各题(每小题6分,共18分): 1、已知字符串p = ‘abbabbac ’,计算next(7)和nextval(7)的值。 2、给出下列排序算法最坏的情况时间复杂性,并指出其中那些算法是稳定的? ⑴快速排序 ⑵简单选择排序 ⑶堆排序 3、设度为m 的树采用多重链表存储,每个结点有m+1个域,其中有一个数据域,m 个指向孩子的指针域。则空指针的数目是多少?说明这种存储方式的利弊。 二、完成下列各题:(每小题8分,共40分) 1、设二叉树以带右链的先序次序存储,其存储结构如下: 6 3 5 0 0 0 9 0 0 0 E H F I G A B D C J 1 2 3 4 5 6 7 8 9 10 则画出该二叉树。 2 、对于下列AOE 网络,求出各活动可能的最早开始时间和允许的最晚完成时间,并问整个工程的最短完成时间是多少? 3、设有13个初始游程,其长度分别为28,16,33,19,5,7,18,20,12,31,38,22,10。试画出4路合并最佳合并树,并计算它的加权路径长度。 4、设散列表ht 的长度为11,散列函数h 1(key) = key mod 11,h 2(key)=key mod 9+1。采用双重探查法解决冲突,请从空表开始,依次插入下列关键字值序列:70,25,80,35,60,45,50,55,建立散列表。

5、设有初始关键字值序列为:71,74,2,72,54,93,52,28,现采用堆排序方法进行排序,请给出手工执行堆排序的过程。 三、设E是一棵扩充二叉树的外路径长度,I是内路径长度,n是内结点个数。试写出三者的关系式,并使用数学归纳法证明之。(10分) 四、有序表以顺序方式存储,其存储结构说明如下: Type list=array[1..n] of integer 实现下列对半查找的函数过程: Function bisearch(r:list;low,high,tkey:integer):integer; 其中,tkey为待查关键字值。若tkey在表r中,则返回该关键字值在表中的位置,否则返回0。并画出n=10的对半查找判定树。(16分) 五、已知有n个结点的树以双亲表示法存储在一堆数组中。请设计一个的算法求树中每个结点的层次和树的高度,将求得的每个结点的层次保存在一维数组c中,并分析你所设计的算法的时间复杂性。(16分)

数据结构考研必背算法5星

数据结构考研必背算法5星 文档说明:本文档是针对考研专业课《数据结构》所编写的,是对考研数据结构的核心算法进行总结,我们知道,不管是统考还是非统考,都会涉及至少10分的算法题(非统考至少25分),而这些题的答案都是在一些经典算法的思想上进行改进的,本文总结出必须要熟练掌握的算法,这些算法不管是考研初期还是冲刺,都应该高度重视,只要对这些代码进行熟练掌握,才能随机应变,希望对大家有所帮助;

线性表 1.逆转顺序表中的所有元素 void Reverse(int A[ ],int n){ int i,t; for(i=0;inext; while (P!=NULL){ if(p->data == X){ q->next = p->next; free(p); p=q->next; }else{ q = p; p = p->next; } } if(L->data == X){ q = L; L = L->next; free(q); } } 自我总结: 3.删除不带头结点单链表L中所有值为X的结点(递归) void Del_X(Linklist &L,Elemtype X){ LNode *p; if(L==NULL) return ; if(L->data == X){ P = L; L = L->next; free(p); Del_X(L,X); }else{ Del_X(L->next,X); } } 自我总结: 4.删除带头结点单链表L中所有值为X 的结点 void Del_X(Linklist &L,Elemtype X){ LNode *p = L->next,*pre = L, *q; while(P!=NULL){ if(P->data == X){ q = p; p=p->next; pre->next = p; free(q); }else{ pre = p; p=p->next; } } } 注:本算法是在无序单链表中删除满足某种条件的所有结点;如:若是要删除介于max 和min之间的所有结点,只需将if语句改为if(p->data>min&&p->data

2019年广东暨南大学数据结构考研真题

2019年广东暨南大学数据结构考研真题 一、单项选择题(每题2分,共30分) 1.在任意一棵二叉树的先序序列和后序序列中,各叶子之间的相对次序关系()。 A.不一定相同 B.互为逆序 C.都不相同 D.都相同 2.深度为4的二叉树至多有结点数为()。 A.18 B.14 C.15 D.16 3.在一个具有n个顶点的有向图中,若所有顶点的入度数之和为m,则所有顶点的度数之和为()。 A.m B.m-1 C.m+1 D.2m 4.快速排序在()情况下最不利于发挥其长处。 A.被排序的数据量太大. B.被排序数据中含有多个相同的关键字 C.被排序的数据完全无序 D.被排序的数据已基本有序 5.一组记录的关键字为(45,80,55,40,42,85),则利用堆排序的方法建立的初始堆为()。 A.(80,45,55,40,42,85) B.(85,80,55,40,42,45) C.(85,80,55,45,42,40) D.(85,55,80,42,45,40) 6.对有18个元素的有序表(下标为1~18)作折半查找,则查找A[3]的比较序列的下标为()。 A.1,2,3 B.9,5,2,3 C.9,5,3 D.9,4,2,3 7.具有n个顶点的完全有向图的边数为()。 A.n(n-1)/2 B.n(n-1) C.n2 D.n2-1 8.利用逐点插入法建立序列(50,72,43,85,75,20,35,45,65,30)对应的二叉排序树以后,查找元素35要进行()。 A.4次 B.5次 C.3次 D.2次 9.判定一个有向图是否存在回路除了可以利用拓扑排序方法外,还可以用()。

考研《数据结构》复习知识点归纳

《数据结构》复习重点知识点归纳 一.数据结构的章节结构及重点构成 数据结构学科的章节划分基本上为:概论,线性表,栈和队列,串,多维数组和广义表,树和二叉树,图,查找,内排,外排,文件,动态存储分配。 对于绝大多数的学校而言,“外排,文件,动态存储分配”三章基本上是不考的,在大多数高校的计算机本科教学过程中,这三章也是基本上不作讲授的。所以,大家在这三章上可以不必花费过多的精力,只要知道基本的概念即可。但是,对于报考名校特别是该校又有在试卷中对这三章进行过考核的历史,那么这部分朋友就要留意这三章了。 按照以上我们给出的章节以及对后三章的介绍,数据结构的章节比重大致为: ·概论:内容很少,概念简单,分数大多只有几分,有的学校甚至不考。 ·线性表:基础章节,必考内容之一。考题多数为基本概念题,名校考题中,鲜有大型算法设计题,如果有,也是与其它章节内容相结合。 ·栈和队列:基础章节,容易出基本概念题,必考内容之一。而栈常与其它章节配合考查,也常与递归等概念相联系进行考查。 ·串:基础章节,概念较为简单。专门针对于此章的大型算法设计题很少,较常见的是根据KMP进行算法分析。 ·多维数组及广义表:基础章节,基于数组的算法题也是常见的,分数比例波动较大,是出题的“可选单元”或“侯补单元”。一般如果要出题,多数不会作为大题出。数组常与“查找,排序”等章节结合来作为大题考查。 ·树和二叉树:重点难点章节,各校必考章节。各校在此章出题的不同之处在于,是否在本章中出一到两道大的算法设计题。通过对多所学校的试卷分析,绝大多数学校在本章都曾有过出大型算法设计题的历史。 ·图:重点难点章节,名校尤爱考。如果作为重点来考,则多出现于分析与设计题型当中,可与树一章共同构成算法设计大题的题型设计。 ·查找:重点难点章节,概念较多,联系较为紧密,容易混淆。出题时可以作为分析型题目给出,在基本概念型题目中也较为常见。算法设计型题中可以数组结合来考查,也可以与树一章结合来考查。 ·排序:与查找一章类似,本章同属于重点难点章节,且概念更多,联系更为紧密,概念之间更容易混淆。在基本概念的考查中,尤爱考各种排序算法的优劣比较此类的题。算法设计大题中,如果作为出题,那么常与数组结合来考查。

暨南大学830数据结构2012-2019年考研专业课真题试卷

2019年全国硕士研究生统一入学考试自命题试题(A卷) ******************************************************************************************** 招生专业与代码:计算机科学与技术、软件工程、网络空间安全、工程硕士 研究方向:计算机系统结构081201,计算机软件与理论081202,计算机应用技术 081203,软件工程083500,计算机技术(专业学位) 085211,网络空间安全083900 考试科目名称及代码:数据结构830 考生注意:所有答案必须写在答题纸(卷)上,写在本试题上一律不给分。 一、单项选择题(每题2分,共30分) 1. 在任意一棵二叉树的先序序列和后序序列中,各叶子之间的相对次序关系( )。 A.不一定相同B.互为逆序C.都不相同D.都相同 2. 深度为4的二叉树至多有结点数为( )。 A. 18 B. 14 C. 15 D.16 3. 在一个具有n个顶点的有向图中,若所有顶点的入度数之和为m,则所有顶点的度数之和 为()。 A.m B.m-1 C.m+1 D.2m 4. 快速排序在( )情况下最不利于发挥其长处。 A. 被排序的数据量太大. B. 被排序数据中含有多个相同的关键字 C. 被排序的数据完全无序 D. 被排序的数据已基本有序 5. 一组记录的关键字为(45,80,55,40,42,85), 则利用堆排序的方法建立的初始堆为()。 A. (80,45,55,40,42,85) B. (85,80,55,40,42,45) C. (85,80,55,45,42,40) D. (85,55,80,42,45,40) 6. 对有18个元素的有序表(下标为1~18)作折半查找,则查找A[3]的比较序列的下标为( )。 A. 1,2,3 B. 9,5,2,3 C. 9,5,3 D. 9,4,2,3 7. 具有n个顶点的完全有向图的边数为( )。 A. n(n-1)/2 B. n(n-1) C. n2 D. n2-1 8. 利用逐点插入法建立序列(50,72,43,85,75,20,35,45,65,30)对应的二叉排序树以后,查找元 素35要进行()。 A. 4次 B. 5次 C. 3次 D. 2次 9. 判定一个有向图是否存在回路除了可以利用拓扑排序方法外,还可以用()。 A.求最短路径的Floyd方法B.求最短路径的Dijkstra方法 C.广度优先遍历算法D.深度优先遍历算法 10. 对于一个具有n个顶点的无向连通图,它包含的连通分量的个数为()。 A.0 B.1 C.n D.n+1 11. 在一个单链表中,若p所指的结点不是最后一个结点,在p之后插入s所指的结点, 则执行( )。 A. s->next=p; p->next=s B. p->next=s; s->next=p C. p=s; s->next=p->next D. s->next=p->next; p->next=s 考试科目:数据结构共5 页,第 1 页

南邮考研有关问答

关于南邮的公费以及自费的问题,请直接到这里来看! 1、由于广大考友对南邮的公费以及自费的问题问得比较多,我在这里统一回答一下: 1)南邮的公费比例是比较高的,至少前几年是这样的,平均下来在85%左右,由于现在国家说要慢慢地取消公费,所以以后就不知道了。 2)公费生只要交三年的住宿费2000元,并且每个月有200元补助。 3)自费生除了交2000元住宿费外,还要每年交4000元学费,并且没有补助。 4)南邮的研究生自己买电脑的时候,只要有发票,都可以报销1000元。 注意:以上所说的情况,都是前几年的情况。 2、问题:公费的分数最低是多少啊? 答:没什么最低分,2006年信息与通信工程没招够,307照样公费,只要是第一志愿报通信过了国家线的,够了复试线全是公费,部分调剂生也是公费。 另外:保送生全是公费。 关于报考及课程的相关问题: 1、问题:请问,南邮是报专业还是报导师?06年的通信与信息系统的复试413微机原理及应用或414数据结构与05年的不同,明年还会变么? 南邮的信号与信息处理是不是比通信与信息系统要好些?请赐教 答:南邮是在报名的时候报专业,在复试快结束的时候报导师。 明年还会不会变我也不知道。 个人认为这两个专业差不多,通信与信息系统稍好一点点,个人意见,仅供参考! 2、问题:管理科学与工程初试④414数据结构或418企业管理和复试复试科目:418企业管理或424系统分析与设计中的"或"是什么意思,是自己选择还是学校选择,具体解释一下好吗?谢谢 选择不同科目不是会由于题目不同而造成分数不同吗?老师会不会倾向与某个科目呢,比如这两个选哪个好呢? 答:自己选,二选一.但是初试和复试不能先同一科目.

考研数据结构图的必背算法及知识点

考研数据结构图的必背算 法及知识点 Prepared on 22 November 2020

1.最小生成树:无向连通图的所有生成树中有一棵边的权值总和最小的生成树 问题背景: 假设要在n个城市之间建立通信联络网,则连通n个城市只需要n—1条线路。这时,自然会考虑这样一个问题,如何在最节省经费的前提下建立这个通信网。在每两个城市之间都可以设置一条线路,相应地都要付出一定的经济代价。n个城市之间,最多可能设置n(n-1)/2条线路,那么,如何在这些可能的线路中选择n-1条,以使总的耗费最少呢 分析问题(建立模型): 可以用连通网来表示n个城市以及n个城市间可能设置的通信线路,其中网的顶点表示城市,边表示两城市之间的线路,赋于边的权值表示相应的代价。对于n个顶点的连通网可以建立许多不同的生成树,每一棵生成树都可以是一个通信网。即无向连通图的生成树不是唯一的。连通图的一次遍历所经过的边的集合及图中所有顶点的集合就构成了该图的一棵生成树,对连通图的不同遍历,就可能得到不同的生成树。 图G5无向连通图的生成树为(a)、(b)和(c)图所示: G5 G5的三棵生成树: 可以证明,对于有n个顶点的无向连通图,无论其生成树的形态如何,所有生成树中都有且仅有n-1条边。

最小生成树的定义: 如果无向连通图是一个网,那么,它的所有生成树中必有一棵边的权值总和最小的生成树,我们称这棵生成树为最小生成树,简称为最小生成树。 最小生成树的性质: 假设N=(V,{E})是个连通网,U是顶点集合V的一个非空子集,若(u,v)是个一条具有最小权值(代价)的边,其中, 则必存在一棵包含边(u,v)的最小生成树。 解决方案: 两种常用的构造最小生成树的算法:普里姆(Prim)和克鲁斯卡尔(Kruskal)。他们都利用了最小生成树的性质 1.普里姆(Prim)算法:有线到点,适合边稠密。时间复杂度O(N^2) 假设G=(V,E)为连通图,其中V为网图中所有顶点的集合,E为网图中所有带权边的集合。设置两个新的集合U和T,其中 集合U(顶点集)用于存放G的最小生成树中的顶点, 集合T(边集合)存放G的最小生成树中的边。 T,U的初始状态:令集合U的初值为U={u1}(假设构造最小生成树时,从顶点u1出发),集合T的初值为T={}。

数据结构暨南大学试题

1.对顺序存储结构的线性表,设表长为La;插入一个数据元素需平均] 移动表中元素n/2 个;在最坏情况下需移动表中元素_n_个。 2.从逻辑角度看,四种基本的数据结构可分为集合、线性结构、 树形结构和图状结构;两种存储结构为顺序和链式。 5.堆栈被称为一个后进先出的线性表;队列被称为一个先进先出的线性表 6.静态查找表的查找方法主要有:有序表查找及有序表、静态树表、索引顺序表等查找方法; 8.内部排序方法大致可分为插入、交换、选择、归并和计数等五类; 简单排序方法的时间复杂度为O(n2)。 9.前序序列和中序序列相同的二叉树为单右支二叉树或孤立结点 10.文件的组织方式有顺序、随机和链等三种;顺序文件又可分为 连续文件和串联文件两大类。 11. 在内部排序中,平均比较次数最少的是快速排序,要求附加 的内存容量最大的是归并排序。 12.由n个权值构成的哈夫曼树共有2n-1个结点。 13.在单链表中,除首元结点外,任一结点的存储位置由其直接前趋 结点的链域指示。 14.栈结构允许进行删除操作的一端称为栈的栈顶。 15. GetTail(p)为求广义表p的表尾函数。其中( )是函数符号,运算 GetTail(GetHead((a,b),(c,d)))的结果是(b)。 16.循环链表的主要优点是从任一结点出发可以遍历链表中的所有结点17.在左右子树均不空的先序线索二叉树(有n个结点)中,空链 域的数目是1。 18.如果含n个顶点的图是一个环,则它有n棵生成树。 在有序表ST中折半查找其关键字等于key的数据元素。若找到, 则函数值为该元素在表中的位置,否则为0。 Low =1; high=ST.length; While (low<=high){ mid= (low+high)/2; if EQ(key, ST.elem[mid].key) return mid; else if LT( key, ST.elem[mid].key) high=mid-1; else low= mid+1; 2. 中序遍历二叉树T的递归算法,对数据元素操作调用函数printf()。InOrderTraverse(struct TNode *T){ if (T){ InOrderTraverse(___T->lchild___); printf("%c",___ T->data _____); InOrderTraverse(___T->rchild_____); 3. void Pop(SqStack *S0, char *e){ //若栈不空,则删除栈顶元素,用e返回其值。 if(S0->top= =__S0->base _____) return; ____(S0->top)_____; *e=*(____(S0->top)_____);

数据结构考研知识点总结

数据结构考研真题及知识点解析 考察目标 1. 理解数据结构的基本概念、基本原理和基本方法。 2. 掌握数据的逻辑结构、存储结构及基本操作的实现,能够对算法进行基本的时间复杂度与空间复杂度的分析。 3. 能够运用数据结构的基本原理和方法进行问题的分析与求解,具备采用C、C++或Java语言设计与实现算法的能力。 第2章线性表 一、考研知识点 (一)线性表的定义和基本操作 (二)线性表的实现 1.顺序存储 2.链式存储 3.线性表的应用 二、考研真题 (一)选择题 近两年第2章没有考选择题,因为此章主要是线性表的操作,而且又是这门课的一个基础,考综合题的可能性比较大,而且可以和第3章、第9章和第10章的内容结合来出题。 1.(11年)设n是描述问题规模的非负整数,下面程序片段的时间复杂度是()。 x=2; while(xk时,指针p 随着每次遍历,也向前移动一个结点。当遍历完成时,p或者指向表头结点,或者指向链表中倒数第k个位置上的结点。 (3)算法描述:

相关文档
最新文档