文件名称:
15085 王小凤主讲 严蔚敏《数据结构》考研冲刺串讲与模拟四套卷.pdf
开发工具:
文件大小: 3mb
下载次数: 0
上传时间: 2019-07-03
详细说明:考研数据结构很好的复习材料,考点清晰适合学习数据结构的同学们。考试点(www.kaoshidian.com)名师精品课程电话:400-6885-365
输入
输出
(2)算法设计的要求
·正确性
·可读性
健壮性
通用性
·效率与存储量需求
(3)“正确”分4个层次
·程序不含语法错误
·程序对于几组输入数据能够得出满足规格说明要求的结果;
·程序对于精心选择的典型、苛刻而带有刁难性的几组输亼欻据能够得岀满是规格说明要求的
结果
程序对于一切合法的输入数据都能产生满足规格说明要求的结果。
通常以第3层意义的正确性作为衡量一个程序是否合格的标准。
(4)算法分析应用举例
一般地,常用最深层循环内的语句中的原操作的执行频度(重复执行的次数)来表示。
表示时间复杂度的阶有:
O(1):常量时间阶
O(n):线性时间阶
O( logn):对数时间阶
O( nlogn):线性对数时间阶
0(n):k≥2,k次方时间阶
二、线性表的链式和顺序存储
考点
重点与难点
考试中常见题型
复习思路与方法
1.掌握线性表特点及抽象数据
本章中的线性表的特点
顺序表和单链表上实现
选择题、填空类型定义
顺序定义及实现线性链表循环的各种基本操作及相关
题、算法设计题2.熟练掌握顺序表和链表操
链表、双向链表
的时间性能分析
作
顺序存储结构中,很容易实现线性表的一些操作:初始化、赋值、査找、修改、插入、删除、求长度
单线性链式的基本操作
严蔚敏《数据结枸》冲剌串讲与模拟四套卷
1.建立单链表
动态地建立单链表的常用方法有如下两种:头插入法,尾插入法。
(1)头插入法建表
每次插入的结点都作为链表的第一个结点。生成的链表中结点的次序和输入的顺序相反。
(2)尾插入法建表
尾插法是将新结点插入钊当前链表的表尾,使其成为当前链表的尾结点。牛成的次序和输入的
次序相同。
2.双向链表
双冋链表( Double linked list):指的是构成链表的每个结点中设立两个指针域:一个指向其直接
前趋的指针域 prior,一个指向其直接后继的指针域next。这样形成的链表中有两个方向不同的链,故
称为双向链表。
三、限定性线性表一栈
考点
重点与难点
考试中常见题犁
复习思路与方法
栈的基本操作
1.熟练掌握栈的工作原理
2.栈类的实现
填空题
栈的原理
3.栈的应用和算法
选择题
2.掌握栈的顺序和链式存储结
4.递归的概念
递归工作原理
编程题
构下的基本操作
5.栈与递归
3.掌握栈与递归的关系
结点出栈:首先执行top减1,使top指向栈顶元素的存储位置,然后将栈顶元素取出。
bottom
bottom
bottom
空栈
元素a进栈
元素b,c进栈
bottom
bottom
元素c退栈
元素d,e,进栈
(动态)堆栈变化示基图
1.两栈共享技术(双端栈):
主要利用了栈“栈底位置不变,而栈顶位置动态变化”的特性。首先为两个栈申请一个共享的
维数组空间SM],将两个栈的栈底分别放在一维数组的两端,分别是0),M-1。
共享栈的空间示意为:p0]和top[1]分别为两个栈顶指示器。
Stack. 0
M-1
top[(1I
试点(ww.kaoshidian.com)名师精品课程电话:4006885365
2.栈的链式表示
栈的链式存储结构称为链栈,是运算受限的单链表。其插入和删除操作只能在表头位置上进行。
因此,链栈没有必要像单链表那样附加头结点,栈顶指针卹p就是链表的头指针。下图是栈的链式存
储表示形式。
p→匚N
空栈
链栈存储形式
非空栈
链栈的结点类型说明如下:
typedef struct Stack_Node
struct Stack Node *'s next
I Stack_Node
四、限定性线性表一队列
考点
重点与难点
考试中常见题型
复与思路与方法
1.熟练掌握驮列的工作原理
1.队列的基本操作
填空题
2.掌握队列的顺序和链式存储
2.队列的实现
队列的原理
选择题
结构下的基本操作
3.队列的应用和算法
编程题
3.掌握栈与递归的关系
Q rear
Q rear
Q rear
rea
Q fronm
Q frond
a)空队列(b)入队3个元素(c出队3个元素(d)入队2个元素
图36队列示意图
1.循环队列
为充分利用向量空间,克服上述“假溢出”现象的方法是:将为队列分配的向量空间看成为一个首
尾相接的圆环,并称这种队列为循环队列( Circular Queue)。
队列的链式存储表示
队列的链式存储结构简称为链队列,它是限制仅在表头进行删除操作和表尾进行插入操作的单
链表
严蔚敏《数据结枸》冲刺串讲与模拟四套卷
需要两类不同的结点:数据元素结点,队列的队首指针和队尾指针的结点。
五、串
考点
重点与难点
考试中常见题型
复习思路与方法
的概念、术语和基本操作和存储
熟练掌握串的概念、术诘
填空题、选择
结构
串的模式匹配算法
熟练掌握串的操作
题、编程题
串的模式匹配算法
掌握串的模式匹配思路
串的模式匹配算法
模式匹配(模范匹配):子串在主串中的定位称为模式匹配或串匹(字符串匹配)。模式匹配成
功是指在主串S中能够找到模式串T,否则,称模式串T在主串S中不存在。
六、数组与广义表
考点
重点与难点
考试中常见题型
复习思路与方法
理解数组的定义数组的顺序存储数组的顺序存储和压缩
结构及矩阵的存储压缩
存储计算;
选择题、填空|1掌握数组元素存储方式和下
标计算公式;
理解广义表的定义及存储结构
题、算法设计题
广义表长度和深度计算
2.熟练广义表操作;
以二维数组Am为例,假设每个元素只占一个存储单元,“以行为主”存放数组,下标从1开始,首
元素an的地址为Lc-1,1]求任意元素an的地址,可由如下计算公式得到:
Ioc[i,]=Loc[1,1]+n×(i-1)+(j-1)
如果每个元素占e个存储单元,则任意元素a的地址计算公式为
cLi,j」=Lwcl1,1」+(n×(i-1)+j-1)×size
特殊矩阵的压缩存储
特殊矩阵压缩存储的压缩原则是:对有规律的元素和值相同的元素只分配一个存储单元,对于零
元素不分[空间。
三角矩阵(下三角矩阵、上三角矩阵和对称矩阵)和带状矩阵。
(1)稀疏矩阵的三元组表表示法
(2)稀疏矩阵的链式冇储结构:十字链表
广义表( Lists,又称为列表):是由n(n全0)个元素组成的有穷序列:LS=(a1,a2,…,an)其中a
或者是原子项,或者是一个广义表。LS是广义表的名字,n为它的长度。若a1是广义表,则称为LS的
子表。
(1)广义表的头尾链表存储结构
(2)广义表的同层节点链存储结构
七、小结
线性结构分为线性表、栈、队列、串、数组和广义表。
·本讲主要对其类型定义和基本操作以及应用进行讲解。
试点(ww.kaoshidian.com)名师精品课程电话:4006885365
第2讲非线性结构
数据结构屮非线性结构主要分为树形和图形结构。本讲对这两部分內容进行复习总结。
、树与二叉树
考点
重点与难点
考试中常见题型
复习思路与方法
1.树与二叉树的基本概念,
2.完全二又树与满二叉树的基本
概念和性质
3.二又树与树、树林之间的转换
4.二叉树的顺序存储结构与二叉
链表存储结构
5.二叉树的前序遍历、中序遍历
叉链表基础上各种遍
熟练掌握树、二叉树基本概念,
后序遍历和按层次遍历,以及在
历算法(重点为非递归算填空题、选择
叉链表基础上各种遍历算法(重点
法)的设计与应用;
掌握二叉树基本定理,遍历方
为非递归算法)的设计与应用
二义树的线索化;
编程题、构造题
式、哈大曼树的构造和WPL计
哈夫曼树的构造和编码
算以及哈夫曼编码
6.线索二叉树
7.哈大曼( Huffman)树的基概
念,哈夫曼树的构造与带杈路径长
度(WPL)的计算及其应用。
8.遍历二叉树
9.树和森林的关系及遍历
1.二又树的五种基本形态
(a)空二叉数只有根结(只有左子
点的二叉树
树的二叉树
(d左右子树均(e)只有右子树
非空的二义树的二义树
2.二又树的性质
性质1:在二叉树的第i层上至多有2-个结点(i≥1)。
性质2:深度为k的二叉树至多有2-1个结点(k≥1)。
性质3:对任意一棵二叉树T,若终端结点数为n,而其度数为2的结点数为n2,则n=n2+1
性质4:具有n个结点的完全二叉树的深度为llog2n」+1。
性质5:对于具有n个结点的完全二叉树,如果按照从上到下和从左到右的顺序对二叉树中的所
严蔚敏《数据结枃》冲刺串讲与模拟四套卷
有结点从1开始顺序编号,则对于任意的序号为i的结点有:
(1)若i=1,则i无双亲结点
若i>1,则i的双亲结点为i/2
(2)若2米i>n,则i无左孩子
若2*i≤n,则i结点的左孩子结点为2*i
(3)若2*i+1>n,则i无右孩子
若2i+1≤n,则i的右孩子结点为2*i+1
3.二叉树的存储结构
叉树的结构是非线性的,每一结点最多可有两个后继。
二叉树的冇储结构有两种:顺序冇储结构和链式冇储结构。
对于如下图的二叉树,其先序、屮序、后序遍历的序列为
先序遍历:A、B、D、F、G、C、E、H。
中序遍历:B、F、D、G、A、C、E、H。
后序遍历:F、G、D、B、HE、C、A。
C
4.先序遍历递归算法
voidPre Order( Bi'lree root
*先序遍历二叉树,rot为指向二叉树(或某一子树)根结点的指针*/
if root!=NULL)
Visit(rot->data);/*访问根结点*/
PreOrder(root-> LChild);/米先序遍历左子树*/
PreOrder(root-> RChild);/*先序遍历右子树*
线索二叉树结构:为了区分孩子结点和前驱后继结点,为结点结构增设两个标志域。
LChild
Ltag
Data
rtag
RChild
其中:
0 LChild域指示结点的左孩子
Ltag=
l1 L Child域指示结点的遍历前驱
7
试点(ww.kaoshidian.com)名师精品课程电话:4006885365
0 RChild域指示结点的右孩子
g
1 RChild域指示结点的遍历后继
5.树的有储结构
树的存储结构根据应用的不同而不同。
(1)双亲表示法(顺序存储结构)
(2)孩子链表表示法
·定长结点结构
不定长结点结构
复合链表结构
(3)孩子兄弟表示法(二叉树表示法)
以二义链表作为树的存储结构,其结点形式如卜图(a)所示
两个指针域:分别指向结点的第一个子结点和下一个兄弟结点。结点类型定义如下
pedef struct CSnode
em Iype data
struct CSnode firstchild, nextsibing i
ANOde
图所示树的孩子兄弟表示的存储结构如图
firstchild data nextsibing
孩子结点兄弟结点
(a)结点结构
①0
(b)树
LAEALCA
囚
(c)孩子兄弟存储结构树及孩子兄弟存储结构
6.二叉树转换成树
(1)加虚线。
(2)去连线。
严蔚敏《数据结枸》冲剌串讲与模拟四套卷
(3)规整化
R
B
(E)(C
(C)还原后的树
a)加虚线后
(b)去连线后
二叉树向树的转换过程
7.树和森林的遍历
树的遍历
由树结构的定义可知,树的遍历有二种方法。
先根遍历
后根遍历
A
B
E
K
C)(D)(F(G(H
图6-23树
Huffman编码方法
以宇符集C作为叶子结点,次数或频度集W作为结点的权值来构造 Huffman树。规定 Huffman
树中左分支代表“0”,右分支代表“1”。
从根结点到每个叶∫结点所经历的路径分支上的“0”或“1”所组成的字符串,为该结点所对应的
编码,称之为 Huffman编码。
每个字符都是叶子结点,不可能出现在根结点到其它字符结点的路径上,所以一个字符的Hu
man编码不可能是另一个字符的 Huffman编码的前缀。
二、图
考点
重点与难点
考试中常见题型
复习思路与方法
1.图的基本概念、名词术语;
2.图的各种存储方法和基本操作
熟练掌握图的存储结构和概念
3.图的深度优先搜索与广度优先
搜索;
最小生成树、拓扑排序
填空题、选择熟练堂握图的最小生成树、拓
4最小(代价)生成树、最短路径、关键路径的求取
题、编程题计扑排序和关键路径的原理和算
算题
法
AOV网与拓扑排序以及AOE网与
熟练掌握图的遍历
关键路径的基本概念与求解过程。
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.