数据结构 严蔚敏C语言版 学习复习提纲
数据结构老师给的复习要点(严蔚敏版)
数据结构⽼师给的复习要点(严蔚敏版)第⼀章1. 怎样理解“算法+数据结构=程序”这个公式?举例说明。
算法是语句序列解决特定问题的固有程序⽚段。
数据结构是确定数据间的关系。
从具体问题抽象出⼀个合适的数学模型、然后设计⼀个解决此数学模型的算法,最后编写出程序。
寻求数学模型的是指就是数据结构要完成的⼯作。
参看书p1前两段的描述。
2. 数据结构的概念,它包含哪三⽅⾯的内容?数据结构:是⼀门研究⾮数值计算的程序设计问题中计算机的操作对象以及它们之间饿关系和操作的学科。
参看书p3包含三⽅⾯的内容:1、数据之间的逻辑关系2、数据在计算机中的存储⽅式3、在数据上定义的运算的集合。
3. 数据、数据元素、数据项的基本概念。
举例说明数据元素和数据项的联系与区别。
数据:描述客观事物的数字、字符以及所有能直接输⼊到计算机中并被计算机程序处理的符号的集合。
数据元素:数据的基本单位,在计算机程序中通常作为⼀个整体进⾏考虑或处理。
数据项:数据项是具有独⽴含义的最⼩标识单位,是数据元的⼀个具体值,是数据记录中最基本的、不可分的有名数据单位。
例1:class A{int c[123];int i;};class B{A a;}B b;b.a是数据项,B是数据元素例2:⼀本书的数⽬信息为⼀个数据元素,⽽数⽬信息中每⼀项(如书名、作者名等)为⼀个数据项4. 从逻辑结构来看,数据结构有哪四种基本结构,各⾃的特点是什么?1、集合(数据元素之间同属于⼀个集合,再⽆其他关系)2、线性结构(数据元素之间存在⼀对⼀的关系)3、树形结构(数据元素之间⼀对多的关系)4、图状结构或⽹状结构(数据元素之间多对多的关系)5. 从物理结构来看,数据结构有哪两种基本结构,各⾃的特点是什么?1、顺序存储结构特点:借助元素在存储器中的相应位置来表⽰数据元素之间的逻辑关系。
2、链式存储结构特定:借助元素在存储地址的指针表⽰数据元素之间的逻辑关系。
6. 算法的5个特征,4个评价标准是什么?特征:有穷性、确定性、可⾏性、输⼊、输出。
严蔚敏《数据结构》配套复习资料(1-3章)【圣才出品】
圣才电子书 十万种考研考证电子书、题库视频学习平台
③树形结构:数据元素之间存在一个对多个的关系。 ④图状结构或网状结构:数据元素之间存在多个对多个的关系。 【注意】区分这四种基本结构可以根据元素间的对应关系。 如图 1-1 所示为上述四类基本结构的关系图。
圣才电子书 十万种考研考证电子书、题库视频学习平台
第1章 绪 论
1.1 复习笔记
一、什么是数据结构 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的 关系和操作等的学科。
二、基本概念和术语 1.数据 数据是对客观事物的符号表示,是计算机科学中所有能输入到计算机中并能被计算机程 序处理的符号的总称。
圣才电子书 十万种考研考证电子书、题库视频学习平台
构)。 其中,关系有两种表示方法:顺序映象和非顺序映象。这两种表示方法对应两种存储结 构:顺序存储结构和链式存储结构。 a.顺序映象:用相对位置来表示数据元素之间的逻辑关系。 b.非顺序映象:用指针表示数据元素之间的逻辑关系。
5 / 155
圣才电子书 十万种考研考证电子书、题库视频学习平台
象数据类型。 答:(1)数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并 能被计算机程序处理的符号的总称。 (2)数据元素是数据的基本单位。 (3)数据对象是性质相同的数据元素的集合,是数据的一个子集。 (4)数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 (5)存储结构是数据结构在计算机中的表示(又称映象或数据的物理结构)。 (6)数据类型是一个值的集合和定义在这个值集上的一组操作的总称。 (7)抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。
3 / 155
数据结构期末复习要点(严蔚敏版)
数据结构期末复习要点第一章绪论1、掌握基本概念和术语,看教材P4—P6部分内容;2、看P10—P11关于类C的语法描述,算法设计写代码时可用到;3、掌握算法的特征(5个)和要求(5个)(P13—P14),能够结合具体算法分析算法的时间复杂度和空间复杂度(比如线性表的插入、删除操作,查找、排序等操作),理解O(n)、O(1)等时间复杂度的具体含义(P14—P17)。
第二章线性表1、看教材P21—P26,掌握有关线性表顺序存储的内容:(1)顺序表的随机存取(P21计算地址的公式);(2)顺序表的表示(P22的Typedef);(3)顺序表为空、为满的判定,插入和删除操作的特征以及时间复杂度的分析(P23—P25);(4)有关顺序表的编程题。
2、看教材P27—P30,掌握有关线性表链式存储的内容:(1)单链表的表示(P28的Typedef);(2)单链表为空的判定(带头结点、不带头结点);(3)单链表插入、删除操作的特征(操作点的确定以和指针的修改)以及时间复杂度分析(P29—P30);(4)有关单链表的编程。
3、为节约时间,循环链表、双向链表以及多项式加法可以不看;4、算法设计题要求写代码,在本章体现的可能性比较大。
第三章栈和队列1、顺序栈的表示,栈操作的特点以及为空、为满的判定(P46—P47);2、栈的应用举例看个标题就足够了;3、链队列的表示以及入队、出队操作(P61—P62);4、循环队列为空、为满的判定(P65的代码中);5、离散事件模拟这节不用看;6、第四章只需要看P70就够了,掌握串的特点(元素受限),串长度、空串、串的位置、串相等几个概念即可。
第六章树和二叉树1、看教材P120,了解有关树的概念和术语;2、了解二叉树的链式存储结构(P127),掌握二叉树的性质(P123—P125),并会做题(参考课件或指导书相关内容);3、掌握二叉树的各种遍历算法(P128—P129或课件):(1)能够根据二叉树写出各种遍历序列;(2)能够由两种遍历序列(必须包含中序序列)恢复二叉树;(3)理解二叉树遍历算法的递归代码,能够读懂代码含义。
严蔚敏数据结构题集(C语言版)完整与答案
严蔚敏 数据结构C 语言版答案详解第1章 绪论1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。
解:数据是对客观事物的符号表示。
在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
数据对象是性质相同的数据元素的集合,是数据的一个子集。
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
存储结构是数据结构在计算机中的表示。
数据类型是一个值的集合和定义在这个值集上的一组操作的总称。
抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。
是对一般数据类型的扩展。
1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。
解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型更广、更抽象。
一般数据类型由具体语言系统内部定义,直接提供给编程者定义用户数据,因此称它们为预定义数据类型。
抽象数据类型通常由编程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。
在定义抽象数据类型中的数据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实现,这样抽象层次更高,更能为其他用户提供良好的使用接口。
1.3 设有数据结构(D,R),其中{}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r =试按图论中图的画法惯例画出其逻辑结构图。
解:1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。
解:ADT Complex{ 数据对象:D={r,i|r,i 为实数} 数据关系:R={<r,i>} 基本操作: InitComplex(&C,re,im)操作结果:构造一个复数C ,其实部和虚部分别为re 和im DestroyCmoplex(&C)操作结果:销毁复数C Get(C,k,&e)操作结果:用e 返回复数C 的第k 元的值Put(&C,k,e)操作结果:改变复数C的第k元的值为eIsAscending(C)操作结果:如果复数C的两个元素按升序排列,则返回1,否则返回0 IsDescending(C)操作结果:如果复数C的两个元素按降序排列,则返回1,否则返回0 Max(C,&e)操作结果:用e返回复数C的两个元素中值较大的一个Min(C,&e)操作结果:用e返回复数C的两个元素中值较小的一个}ADT ComplexADT RationalNumber{数据对象:D={s,m|s,m为自然数,且m不为0}数据关系:R={<s,m>}基本操作:InitRationalNumber(&R,s,m)操作结果:构造一个有理数R,其分子和分母分别为s和mDestroyRationalNumber(&R)操作结果:销毁有理数RGet(R,k,&e)操作结果:用e返回有理数R的第k元的值Put(&R,k,e)操作结果:改变有理数R的第k元的值为eIsAscending(R)操作结果:若有理数R的两个元素按升序排列,则返回1,否则返回0 IsDescending(R)操作结果:若有理数R的两个元素按降序排列,则返回1,否则返回0 Max(R,&e)操作结果:用e返回有理数R的两个元素中值较大的一个Min(R,&e)操作结果:用e返回有理数R的两个元素中值较小的一个}ADT RationalNumber1.5 试画出与下列程序段等价的框图。
数据结构 (严蔚敏C语言版) 学习、复习提纲
期末复习 第一章 绪论 复习1、计算机算法必须具备输入、输出、可行性、确定性、有穷性5个特性。
2、算法分析的两个主要方面是空间复杂度和时间复杂度。
3、数据元素是数据的基本单位。
4、数据项是数据的最小单位。
5、数据结构是带结构的数据元素的集合。
6、数据的存储结构包括顺序、链接、散列和索引四种基本类型。
数据结构算 法数据:计算机处理的信息总称数据项:最小单位 数据元素:最基本单位数据对象:元素集合数据结构:相互之间存在一种或多种特定关系的数据元素集合。
概念:数据元素之间的关系 线性结构:一对一非线性结构 树:一对多 图:多对多顺序存储结构 链表存储结构 索引。
散列。
算法描述:指令的有限有序序列有穷性 确定性 可行性 输入 输出 时间复杂度 空间复杂度第二章 线性表 复习1、在双链表中,每个结点有两个指针域,包括一个指向前驱结点的指针 、一个指向后继结点的指针2、线性表采用顺序存储,必须占用一片连续的存储单元3、线性表采用链式存储,便于进行插入和删除操作4、线性表采用顺序存储和链式存储优缺点比较。
5、简单算法第三章 栈和队列 复习定义逻辑关系:前趋 后继节省空间 随机存取 插、删效率低 插入 删除1、 栈和队列的异同点。
2、 栈和队列的基本运算3、 出栈和出队4、 基本运算第四章 串 复习存储结构栈的概念:在一端操作的线性表 运算算法栈的特点:先进后出 LIFO初始化 进栈push 出栈pop顺序队列 循环队列队列概念:在两端操作的线性表 假溢出链队列队列特点:先进先出 FIFO基本运算顺序:链队:队空:front=rear队满:front=(rear+1)%MAXSIZE队空:rear 初始化 判空 进队 出队取队首元素第五章 数组和广义表 复习定义:由n(≥1)个字符组成的有限序列 S=”c 1c 2c 3 ……cn ”串长度、空白串、空串。
紧缩格式 非紧缩格式以字节为单位的存储格式 (C 语言用数组或指针表示) 基本运算strlen(s) 串长度 strcat(s1,s2) 联接 strcmp(s1,s2) 比较 strcpy(s1,s2) 复制 strstr(s1,s2) 子串查询模式匹配失败链接值匹配算法单字符链表串 多字符链表串串变量的存储映像:串名、串值对应关系表顺序存储方式压缩存储方式行优先顺序存放列优先顺序存放C语言数组:行优先下标从[0]开始,公式变化稀疏矩阵应用表达式程序调用广义表定义:n(≥0)个元素的有限序列表头:Head(A)= a1概念:长度、深度、原子、子表表尾:Tail(A)=(a2,a3,…,a n)表结点特殊矩阵对称矩阵三角矩阵对角矩阵三元组存储:三元组m n t链表存储:十字链表原子结点第六章 树 复习1、三个结点可以组成2种不同形态的树。
严蔚敏《数据结构》配套复习资料(数组和广义表)【圣才出品】
第5章数组和广义表5.1 复习笔记一、数组的定义1.二维数组类似于线性表,一个二维数组的逻辑结构形式表示为:2-Array=(D,R)其中D={a ij|i=c1,c1+1,…,d l,j=c2,c2+1,…,d2,a ij∈D0}R={ROW,COL}ROW={<a ij,a i,j+1>|c1≤i≤d1,c2≤j≤d2-1,a ij,a i,j+1∈D}COL={<a ij,a i+1,j>|c1≤i≤d1-1,c2≤j≤d2,a ij,a i+1,j∈D}D0为某个数据对象,c1,c2,d1,d2均为整数。
【注意】①二维数组中含有(d1-c1+1)×(d2-c2+1)个数据元素,每个数据元素a ij都受行关系、列关系约束。
②a i,j+1是a ij在行关系中的直接后继元素;而a i+1,j是a ij在列关系中的直接后继元素。
③数组中所有的数据元素属于同一数据类型。
2.n维数组n 维数组的逻辑结构形式定义如下:n-Array =(D ,R )其中 12120,1,,,1,2,,(0),n n i i i i j j j j j j i i j c c d i n n D a a D c d ⎧⎫=+=>⎪⎪=⎨⎬∈⎪⎪⎩⎭且和均为整数12{,},,n R R R R =11111111,1,i n i n i n i n i j j j j k k k j j i i i j j j j j j R a a c j d k n k c j d a a D ++=<>⎧⎫≤≤≤≤≠⎪⎪≤≤-⎨⎬⎪⎪∈⎩⎭ 且【注意】 ①n 维数组含有)1(1+-∏=i i ni c d 个数据元素,每个数据元素都受n 个关系的约束。
②在每个关系中,数据元素12(1)n j j j i i i a c j d ⋯≤≤-都有一个直接后继元素。
二、数组的顺序表示和实现1.二维数组的两种存储方式二维数组的顺序存储结构有两种存储方式:(1)以列序为主序的存储方式,如图5-1(a)所示;(2)以行序为主序的存储方式,如图5-1(b)所示。
严蔚敏数据结构复习整理完整版
1.复杂性分析对各种操作的时间复杂性的分析。
主要是链表,树,排序等简单一些的分析。
分析的时候,从简单的入手,学会方法。
后续的各种豆可能让你分析时间复杂度。
线性链表(顺序表和单链表)链表循环链表双向链表2.线性结构队列(循环队列)栈链表主要操作:找某一个元素,插入一个(在哪个位置增加),删除一个(在哪个位置删除)。
栈:查找,插入(位置固定),删除(位置固定)队列:查找,插入(位置固定),删除(位置固定)顺序表(可以视为一个数组)单链表:(删除)(插入)倒置:(查找)循环链表双向链表栈:(插入删除查找)队列(插入删除查找)循环队列的实现,并不是像上面的图那样,实现了一个循环的样子。
3.二叉树基本概念二叉树是每个节点最多有两个子树的有序树。
二叉树常被用于实现二叉查找树和二叉堆。
值得注意的是,二叉树不是树的特殊情形。
二叉树是每个结点最多有两个子树的有序树。
通常根的子树被称作“左子树”(left subtree)和“右子树”(right subtree)。
二叉树常被用作二叉查找树和二叉堆或是二叉排序树。
二叉树的每个结点至多只有二棵子树(不存在出度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。
二叉树不是树的一种特殊情形,尽管其与树有许多相似之处,但树和二叉树有两个主要差别:1. 树中结点的最大度数没有限制,而二叉树结点的最大度数为2;2。
树的结点无左、右之分,而二叉树的结点有左、右之分。
二叉树是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:(1)空二叉树——如图(a);(2)只有一个根结点的二叉树——如图(b);(3)只有左子树——如图(c);(4)只有右子树-—如图(d);(5)完全二叉树-—如图(e)注意:尽管二叉树与树有许多相似之处,但二叉树不是树的特殊情形性质(1)在非空二叉树中,第i层的结点总数不超过, i〉=1;(2)深度为h的二叉树最多有2^h—1个结点(h>=1),最少有h个结点;(3)对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;(4)具有n个结点的完全二叉树的深度为(5)有N个结点的完全二叉树各结点如果用顺序方式存储,则结点之间有如下关系: 若I为结点编号则如果I>1,则其父结点的编号为I/2;如果2*I<=N,则其左儿子(即左子树的根结点)的编号为2*I;若2*I>N,则无左儿子;如果2*I+1〈=N,则其右儿子的结点编号为2*I+1;若2*I+1〉N,则无右儿子。
严蔚敏数据结构(C语言版)知识点总结笔记课后答案
第1章绪论1.1复习笔记一、数据结构的定义数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。
二、基本概念和术语数据数据(data)是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称,它是计算机程序加工的“原料”。
2.数据元素数据元素(data element)是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
3.数据对象数据对象(data object)是性质相同的数据元素的集合,是数据的一个子集。
4.数据结构数据结构(data structure)是相互之间存在一种或多种特定关系的数据元素的集合。
(1)数据结构的基本结构根据数据元素之间关系的不同特性,通常有下列四类基本结构:① 集合。
数据元素之间除了“同属于一个集合”的关系外,别无其它关系。
② 线性结构。
数据元素之间存在一个对一个的关系。
③ 树形结构。
数据元素之间存在一个对多个的关系。
④ 图状结构或网状结构。
数据元素之间存在多个对多个的关系。
如图1-1所示为上述四类基本结构的关系图。
图1-1 四类基本结构的关系图(2)数据结构的形式定义数据结构的形式定义为:数据结构是一个二元组Data_Structure==(D,S)其中:D表示数据元素的有限集,S表示D上关系的有限集。
(3)数据结构在计算机中的表示数据结构在计算机中的表示(又称映象)称为数据的物理结构,又称存储结构。
它包括数据元素的表示和关系的表示。
① 元素的表示。
计算机数据元素用一个由若干位组合起来形成的一个位串表示。
② 关系的表示。
计算机中数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象。
并由这两种不同的表示方法得到两种不同的存储结构:顺序存储结构和链式存储结构。
a.顺序映象的特点是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。
b.非顺序映象的特点是借助指示元素存储地址的指针(pointer)表示数据元素之间的逻辑关系。
严蔚敏《数据结构》(C语言版)笔记和习题(含考研真题)详解
第 1 章 绪 论............................................................................................................................................... 4 1.1 复习笔记 .......................................................................................................................................... 4 1.2 强化习题详解 ................................................................................................................................... 7 1.3 考研真题与典型题详解 ................................................................................................................... 22
第 4 章 串................................................................................................................................................... 114 4.1 复习笔记 ....................................................................................................................................... 114 4.2 强化习题详解 ................................................................................................................................ 118 4.3 考研真题与典型题详解 ..................................................................................................................138
严蔚敏《数据结构》(C语言版)配套题库(章节题库1-6章)【圣才出品】
2.计算机算法指的是解决问题的步骤序列,它必须具备( )三个特性。 A.可执行性、可移植性、可扩充性 B.可执行性、确定性、有穷性 C.确定性、有穷性、稳定性 D.易读性、稳定性、安全性 【答案】B 【解析】计算机算法是以一步接一步的方式来详细描述计算机如何将输入转化为所要求 的输出的过程,或者说,算法是对计算机上执行的计算过程的具体描述,也就是解决问题的 步骤序列。一个算法通常需要具备五大特性:有穷性;确定性;可执行性;输入一个算法有 零个或多个输入;输出一个算法有零个或者多个输出。
FOR i:=n-1 DOWNT0 1 DO FOR j:=l TO i DO IF A[ j]>A[ j+1] THEN A[ j]与 A[ j+1]对换;
其中 n 为正整数,则最后一行的语句最坏情况下的时间复杂度是( )。 A.D(n) B.O(nlogn) C.O(n3) D.O(n2) 【答案】D 【解析】这个是冒泡排序,最坏的情况下需要进行 1+2+...+n-1 次交换,即时间复杂 度是 O(n2)。
6.数据结构的抽象操作的定义与具体实现有关。( ) 【答案】× 【解析】数据结构的抽象操作定义取决于客观存在的一组逻辑特性,与其在计算机内具 体表示和实现无关。
7.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。( ) 【答案】× 【解析】前者正确,后者错误。顺序存储方式在插入、删除元素时需要挪动大量的元素, 执行效率较低。
3.以下说法错误的是( )。 (1)算法原地工作的含义是指不需要任何额外的辅助空间 (2)在相同的规模 n 下,复杂度 O(n)的算法在时间上总是优于复杂度 O(2n)的 算法
数据结构 C语言版(严蔚敏版)第9章 查找
若大于,查找范围的高端数据元素指针high 不变,低端数据元素指针low更新为mid+1; (4)重复步骤(2)、(3)直到查找成功或 查找范围空(low>high),即查找失败为止。 (5)如果查找成功,返回找到元素的存放位 置,即当前的中间项位置指针 mid;否则返回 查找失败标志。
折半查找的c语言算法程序: int Search_Bin( SSTable ST, int n, int key) {int low, high,mid;
查找:在数据元素集合中查找满足某种条 件的数据元素的过程称为查找。最简单且最常 用的查找条件是“关键字值等于某个给定值” ,在查找表搜索关键字等于给定值的数据元素 (或记录)。若表中存在这样的记录,则称查 找成功,此时的查找结果应给出找到记录的全 部信息或指示找到记录的存储位置;若表中不 存在关键字等于给定值的记录,则称查找不成 功,此时查找的结果可以给出一个空记录或空 指针。若按主关键字查找,查找结果是唯一的 ;若按次关键字查找,结果可能是多个记录, 即结果可能不唯一。
while(ST[i].key!=key) i- -;
return i; }
0 1 0
/*从表尾往前查*/ 找到:返回元素 的存 1 2 3 4 在线 5 性表 6 中7 10 20 40 80 储位置; 30 60 25 (a) 初态 未找到:返回0。
2 3 4 5 6 7
80
监视哨 0
10
1
20
动态查找表:若在查找过程中可以将查找 表中不存在的 数据元素插入 ,或者从查找表中 删除某个数据元素 ,则称这类查找表为动态查 找表。动态查找表在查找过程中查找表可能会 发生变化。对动态查找表进行的查找操作称为 动态查找。 关键字:是数据元素中的某个数据项。唯 一能标识数据元素(或记录)的关键字,即每 个元素的关键字值互不相同,我们称这种关键 字为主关键字;若查找表中某些元素的关键字 值相同,称这种关键字为次关键字。例如,银 行帐户中的帐号是主关键字,而姓名是次关键 字。
数据结构C语言版(严蔚敏) 教材讲义
一般情况下,算法中基本操作重复执行的 次数是问题规模n的某个函数,算法的时 间量度记作 T(n)=O(f(n)) 称作算法的渐近时间复杂度。 例1、for(I=1,I<=n;++I)
for(j=1;j<=n;++j) { c[I][j]=0; for(k=1;k<=n;++k) c[I][j]+=a[I][k]*b[k][j];
2.1 线性表的逻辑结构
线性表(Linear List) :由n(n≧)个数据元素(结 点)a1,a2, …an组成的有限序列。其中数据元 素的个数n定义为表的长度。当n=0时称为空表, 常常将非空的线性表(n>0)记作: (a1,a2,…an) 这里的数据元素ai(1≦i≦n)只是一个抽象的符 号,其具体含义在不同的情况下可以不同。 例1、26个英文字母组成的字母表 (A,B,C、…、Z) 例2、某校从1978年到1983年各种型号的计算 机拥有量的变化情况。 (6,17,28,50,92,188)
有的情况下,算法中基本操作重复执行的次数 还随问题的输入数据集不同而不同。例如: Void bubble-sort(int a[],int n) for(I=n-1;change=TURE;I>1 && change;--I) { change=false; for(j=0;j<I;++j) if (a[j]>a[j+1]) { a[j] ←→a[j+1]; change=TURE} } 最好情况:0次
Leabharlann 例4、for(I=1;I<=n;++I) for(j=1;j<=n;++j) {++x;s+=x;} 语句频度为:2n2 其时间复杂度为:O(n2) 即时间复杂度为平方阶。 定理:若A(n)=a m n m +a m-1 n m-1 +…+a1n+a0是 一个m次多项式,则A(n)=O(n m) 证略。 例5for(i=2;i<=n;++I) for(j=2;j<=i-1;++j) {++x;a[i,j]=x;}
严蔚敏《数据结构》考研C语言版考研笔记与考研真题
严蔚敏《数据结构》考研C语言版考研笔记与考研真题第一部分考研真题精选一、单项选择题1若元素a,b,c,d,e,f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈操作,则不可能得到的出栈序列是()。
[计算机统考(408)2010年研]【答案】D查看答案【解析】4个选项所给序列的进、出栈操作序列分别为:选项A:Push,Push,Push,Push,Pop,Pop,Push,Pop,Pop,Push,Pop,Pop选项B:Push,Push,Push,Pop,Pop,Push,Pop,Pop,Push,Pop,Push,Pop选项C:Push,Push,Pop,Push,Pop,Pop,Push,Push,Pop,Push,Pop,Pop选项D:Push,Pop,Push,Push,Push,Push,Push,Pop,Pop,Pop,Pop,Pop按照题目要求,不允许连续三次进行退栈操作,所以选项D所给序列为不可能得到的出栈顺序。
2若一棵二叉树的前序遍历序列为a,e,b,d,c,后序遍历序列为b,c,d,e,a,则根结点的孩子结点()。
[计算机统考(408)2012年研]A.只有eB.有e、bC.有e、cD.无法确定【答案】A查看答案【解析】由题目可知,若一棵二叉树的前序遍历序列为a,e,b,d,c,后序遍历序列为b,c,d,e,a,其中a为这棵二叉树的根结点,接下来,在前序遍历的第二个结点为e,而后序遍历的倒数第二个结点为e,说明a的孩子结点只有e。
3循环队列放在一维数组A[0..M-1]中,end1指向队头元素,end2指向队尾元素的后一个位置。
假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。
初始时为空,下列判断队空和队满的条件中,正确的是()。
[计算机统考(408)2014年研]A.队空:end1==end2;队满:end1==(end2+1)mod MB.队空:end1==end2;队满:end2==(end1+1)mod (M-1)C.队空:end2==(end1+1)mod M;队满:end1==(end2+1)mod M D.队空:end1==(end2+1)mod M;队满:end2==(end1+1)mod (M -1)【答案】A查看答案【解析】在循环队列中,在少用一个元素空间的前提下,可约定入队前,测试尾指针在循环意义下加1后是否等于头指针,若相等,则队满。
严蔚敏数据结构(C语言版)知识点总结笔记课后答案
严蔚敏数据结构(C语⾔版)知识点总结笔记课后答案第1章绪论1.1复习笔记⼀、数据结构的定义数据结构是⼀门研究⾮数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。
⼆、基本概念和术语数据数据(data)是对客观事物的符号表⽰,在计算机科学中是指所有能输⼊到计算机中并被计算机程序处理的符号的总称,它是计算机程序加⼯的“原料”。
2.数据元素数据元素(data element)是数据的基本单位,在计算机程序中通常作为⼀个整体进⾏考虑和处理。
3.数据对象数据对象(data object)是性质相同的数据元素的集合,是数据的⼀个⼦集。
4.数据结构数据结构(data structure)是相互之间存在⼀种或多种特定关系的数据元素的集合。
(1)数据结构的基本结构根据数据元素之间关系的不同特性,通常有下列四类基本结构:①集合。
数据元素之间除了“同属于⼀个集合”的关系外,别⽆其它关系。
②线性结构。
数据元素之间存在⼀个对⼀个的关系。
③树形结构。
数据元素之间存在⼀个对多个的关系。
④图状结构或⽹状结构。
数据元素之间存在多个对多个的关系。
如图1-1所⽰为上述四类基本结构的关系图。
图1-1 四类基本结构的关系图(2)数据结构的形式定义数据结构的形式定义为:数据结构是⼀个⼆元组Data_Structure==(D,S)其中:D表⽰数据元素的有限集,S表⽰D上关系的有限集。
(3)数据结构在计算机中的表⽰数据结构在计算机中的表⽰(⼜称映象)称为数据的物理结构,⼜称存储结构。
它包括数据元素的表⽰和关系的表⽰。
①元素的表⽰。
计算机数据元素⽤⼀个由若⼲位组合起来形成的⼀个位串表⽰。
②关系的表⽰。
计算机中数据元素之间的关系有两种不同的表⽰⽅法:顺序映象和⾮顺序映象。
并由这两种不同的表⽰⽅法得到两种不同的存储结构:顺序存储结构和链式存储结构。
a.顺序映象的特点是借助元素在存储器中的相对位置来表⽰数据元素之间的逻辑关系。
严蔚敏《数据结构》(C语言版)笔记和习题(含考研真题)详解
读书笔记
好书啊,严蔚敏数据结构的题集是没有这么详细的答案哇!这书全有!。 重点内容都有介绍,很赞的就是习题部分的解答。
目录分析
1.2强化习题详解
1.1复习笔记
1.3考研真题与典 型题详解
2.2强化习题详解
2.1复习笔记
2.3考研真题与典 型题详解
3.2强化习题详解
3.1复习笔记
3.3考研真题与典 型题详解
4.2强化习题详解
4.1复习笔记
4.3考研真题与典 型题详解
考研真题与典 型题详解
6.2强化习题详解
6.1复习笔记
6.3考研真题与典 型题详解
7.2强化习题详解
7.1复习笔记
7.3考研真题与典 型题详解
9.2强化习题详解
9.1复习笔记
9.3考研真题与典 型题详解
10.2强化习题详解
10.1复习笔记
10.3考研真题与典 型题详解
11.2强化习题详解
11.1复习笔记
11.3考研真题与典 型题详解
作者介绍
精彩摘录
这是《严蔚敏《数据结构》(C语言版)笔记和习题(含考研真题)详解》的读书笔记模板,可以替换为自己 的精彩内容摘录。
谢谢观看
严蔚敏《数据结构》(C语言版)笔 记和习题(含考研真题)详解
读书笔记模板
01 思维导图
03 读书笔记 05 作者介绍
目录
02 内容摘要 04 目录分析 06 精彩摘录
思维导图
本书关键字分析思维导图
习题
数据结构
笔记
名校
复习
重难点
第章
笔记
教材
真题 真题
存储管理
语言版
典型
二叉树
严蔚敏数据结构大纲
严蔚敏数据结构大纲
一、数据结构绪论
1. 数据结构的基本概念
2. 数据结构的分类
3. 数据结构的重要性
二、线性数据结构
1. 线性表
* 线性表的定义和表示
* 线性表的顺序存储和链式存储
* 线性表的基本操作
2. 栈
* 栈的定义和表示
* 栈的基本操作
* 栈的应用
3. 队列
* 队列的定义和表示
* 队列的基本操作
* 队列的应用
4. 数组和矩阵
* 数组的定义和表示
* 矩阵的定义和表示
* 数组和矩阵的运算
三、非线性数据结构
1. 树
* 树的定义和表示
* 树的性质和度数
* 二叉树
+ 二叉树的定义和表示
+ 二叉树的性质和度数
+ 二叉树的遍历
2. 图
* 图的定义和表示
* 图的基本概念和性质
* 图的遍历算法
3. 散列表
* 散列表的定义和表示
* 散列表的查找算法
4. 优先队列
* 优先队列的定义和表示
* 优先队列的基本操作和应用
5. 图的应用:最短路径问题、最小生成树问题等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
期末复习复习第一章绪论数据:计算机处理的信息总称数据项:最小单位数据元素:最基本单数据对象:元素集合数据结构:相互之间存在一种或多种特定关系的数据元素集合。
概念:数据元素之间的关系线性结构:一对逻辑结构非线性结构数据结构树:一对多图:多对多顺序存储结构链表存储结构存储结构。
索引。
基。
散列。
础知数据运算识算法描述:指令的有限有序序列有穷性确定性算法特性可行性算法输入输出时间复杂度算法分析空间复杂度、计算机算法必须具备输入、输出、可行性、确定性、有穷性5个特性。
1 2、算法分析的两个主要方面是空间复杂度和时间复杂度。
3、数据元素是数据的基本单位。
4、数据项是数据的最小单位。
5、数据结构是带结构的数据元素的集合。
6、数据的存储结构包括顺序、链接、散列和索引四种基本类型。
线性表复习第二章定义逻辑关系:前趋后继节省空间基本特点随机存取插、删效率低顺序存储结构插入基本运算删除一个数据一个指针多占空特查找费插、删效率无法查找前趋结单链运算特点:单链表+前趋指针域链表存储双向结构链表插入运算删除特点:单链表的尾结点指针循环指向附加头结点。
链表运算:联接1 、一个指向后继结点的指针、在双链表中,每个结点有两个指针域,包括一个指向前驱结点的指针 2、线性表采用顺序存储,必须占用一片连续的存储单元、线性表采用链式存储,便于进行插入和删除操作3 、线性表采用顺序存储和链式存储优缺点比较。
4 5、简单算法复习栈和队列第三章.栈的概念:在一端操作的线性表LIFO栈的特点:先进后出存储结初始化push 进栈运算算法pop出栈队列概念:在两端操作的线性表FIFO队列特点:先进先出假溢出顺序队列front=rear队空:循环队列front=(rear+1)%MAXSIZE队满:队列front∧队空:链队列rear初始化判空顺序:进队基本运算链队:出队取队首元素1栈和队列的异同点。
、、2栈和队列的基本运算出栈和出队、3 、4基本运算复习串第四章.n(≥)个字符组成的有限序列1定义:由”c……cS=”cc n231串长度、空白串、空串。
紧缩格式非紧缩格式顺序串以字节为单位的存储格式存储结构(C语言用数组或指针表示)单字符链表串链表串多字符链表串串串变量的存储映像:串名、串值对应关系表 strlen(s) 串长度strcat(s1,s2) 联接基本运算比较strcmp(s1,s2)复制strcpy(s1,s2)子串查询strstr(s1,s2)算运失败链接值模式匹配匹配算法复习数组和广义表第五章.行优先顺序存放列优先顺序存放顺序存储方式C语言数组:行优先下标从[0]开始,公式变化对称矩阵特殊矩阵三角矩阵数组对角矩阵压缩存储方式三元组存储:三元组m n t稀疏矩阵链表存储:十字链表表达式应用程序调用0n(≥个元素的有限序列)定义:概念:长度、深度、原子、子表表头:Head(A)= a广1义运算),a表尾:Tail(A)=(a,,a…表n23表结点tptag=1 hp)(链表存储结构原子结点tptag=0 hp复习第六章树定义:递归定义,不为空双亲、孩子、叶子、兄弟、祖先念概树深、结点的度、有序树、无序树2有序二叉树定义:树中结点的度≤可为空树n=i-层至多个结点1.k-1的二叉树,至多有2.2数深为k 个结点。
性质+1=n3.n 二叉树20为树深树4.n个结点的二叉log∟+1n/2」2,做孩子结点的编i5.双亲结点为2i号为,有孩子2i+1。
顺序:满、完全二叉树树存储方式链表:二叉、三叉链表中根序列先根遍历序列已知先根、二叉树画树;已知后根、中中根遍历序列的遍历后根遍历序列根序列画树;先根线索线索线索树的画法中根线索二叉树后根线索树、森林与二叉树的相互转换树、森林树、森林的遍历左中右二叉排序树小中大树的应用哈夫曼树的画法哈夫曼树1右0编码:左、三个结点可以组成12种不同形态的树。
: 2、一个稀疏矩阵采用三元组形式表示,若完成了其的转置运算要经过哪几步Am*n 矩阵的行、列数值互换、矩阵元素所在行列值互换、元素在矩阵中排列的位置)重新排列3、若二叉树中每一层结点的个数都达到了最大,则称为一棵满二叉树。
、树最适合用来表示现有元素之间具有分支层次关系的数据4 、哈夫曼树是带权路径长度最小的二叉树。
5.6、以下那些项为用十字链表表示的稀疏矩阵元素结点信息元素所在行和列、元素的值、指向该元素所在行的下一个元素的指针、指向该元素所在列的下一个元素的指针。
7、一个广义表可以为其它广义表所共享。
8、广义表可以是一个多层次的结构。
9、压缩存储的三角矩阵和对称矩阵的存储空间相同。
10、广义表中的元素类型可以不相同。
11、两个稀疏矩阵的和仍为稀疏矩阵。
12、二叉树的先序遍历序列中,任意一个结点均处在其孩子结点的前面。
13、对于一棵具有n个节点的树,该树中所有节点的度数之和为n-1。
14、树和森林的遍历中有中序遍历。
15、二叉树用链式存储时,空链域数多于非空链域数。
16、由森林转换成二叉树,其根节点的右子树总是空的。
17、哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近。
18、当一棵具有n个叶子结点的二叉树的WPL值为最小时,称其树为Huffman树,且其二叉树的形状必是唯一的。
x19、某二叉树的先序遍历序列和中序遍历序列相同的二叉树为空树或任一结点均无左孩子的非空二叉树。
20、某二叉树的先序遍历序列和后序遍历序列相同的二叉树为空树或仅有一个结点的非空二叉树。
21、某二叉树的后序遍历序列和中序遍历序列相同的二叉树为空树或任一结点均无左孩子的非空二叉树。
x22、某二叉树的先序遍历序列和后序遍历序列相反的二叉树为高度等于结点数的二叉树。
满二叉树就是除叶子结点外的任何结点均有两个孩子结点,且所有的叶子结点都在同一层上的二叉树。
23、用一维数组存放二叉树时,总是以前序遍历存储结点,这是错误的说法24、在度为k的树中,至少有一个度为k的结点。
25、在非空完全二叉树中,只有最下面一层的结点为叶结点。
26、在完全二叉树中,没有左孩子的结点一定是叶子结点。
27、特殊矩阵主要形式有对称矩阵、上三角矩阵、下三角矩阵、对角矩阵28、在结点数目一定的前提下,各种形态的二叉树中,完全二叉树具有最小深度。
29、在所有深度相同的二叉树中,满二叉树具有最大结点数目。
30、给定一组权值,构造出来的哈夫曼树是不惟一的。
31、哈夫曼树中不存在度为1的结点。
32、线索二叉树中的每个结点通常包含有5个数据成员。
33、判断两个串相等的充分必要条件有两个:两个串的长度相等;两个串上对应位置的字符相同34、下列哪些是广义表的特性:层次性、共享性、递归性35、稀疏矩阵元素的三元组表示的项:元素所在行、元素所在列、元素的值第七章图复习定义G=(, E)无向图、有向路径、回路(环、简单路径、简单回概连通图、连通分量、强连通图、强连通分顶点的度TD(Vi)=ID(Vi)+OD(Vi)二叉树定义:树中结点的度2有序边与度的关系2eTD(Vi)(n)可为空树n=网络AO网AO邻接矩存储结邻接链表、逆邻接链DFS深度优先遍历序图的遍储从小编号BFS广度优先遍历序始遍生成Pri普里姆算Kruskal克鲁斯卡尔算最小生成顶?顶最短路Dijkstra迪杰斯特单源其它顶Floyd弗洛伊德:用邻接矩阵计拓扑排序AO关键路径:AOE网1、强连通分量是有向图的极大连通子图。
连通分量指的是无向图中的极大连通子图。
2、在一个图中,所有顶点的度数之和等于图的边数的2倍。
3、最短路径的生成斯算法可用迪杰斯特拉算法。
4、有向图的邻接表表示适用于求顶点的出度,逆邻接链表适用于求顶点的入度。
、最小生成树只能是带权连通图的运算。
5 6、一个有向无环图的拓扑排序的序列是不唯一的。
7、一个图的邻接矩阵表示法是惟一的。
一个图的邻接表表示法是不惟一的。
若一个有向图中若一个有向图的邻接矩阵中对角线以下元素均为零,、8则该图的拓扑有序序列必定存在。
存在回路,则该图的拓扑有序序列不存在。
、用邻接矩阵法存储一个图所需的存储单元数目与图的边数无关,与顶点数有关。
9 图中的边数等于邻接矩阵中非零元素之和的一半。
,采用邻接矩阵表示, 个顶点的无向图n、有10.11、邻接表中边结点数目为奇数的图一定是有向图。
12、不同的求最小生成树的方法最后得到的生成树是不一定相同的。
13、在一个图中,所有顶点的度数之和等于图的边数的2倍。
14、在一个有向图的拓朴序列中,若顶点a在顶点b之前,则图中必有一条弧<a,b>,这是不正确的说法。
15、关键路径是从源点到汇点的最长路径。
任意AOE网的关键路径是不唯一的。
16、有向图中一个顶点的度应该是它的出度与人度之和。
17、n个顶点的无向图最多有n(n-1)/2条边,n个顶点的有向图最多有n(n-1)条边。
18、在无向图中,若顶点i到顶点j有路径,则这两个顶点之间是连通的。
19、连通图的最小生成树是不惟一的。
20、邻接矩阵主要用来表示顶点之间的关系。
若表示某图的邻接矩阵不是对称矩阵,则该图一定是有向图。
21、若表示某图的邻接矩阵中出现了全零行或者全零列,则该图一定是非连通图或非强连通图22、无向图的邻接表中边结点数目一定为偶数。
23、最短路径一定是简单路径。
24、不能对强连通图进行拓扑排序。
25、存储无向图的邻接矩阵是对称的,因此可以只存储邻接矩阵的下(上)三角部分。
26、在AOE网络中可以有多条关键路径。
27、用边表示活动的网络(AOE网)的关键路径是指从源点到终点的路径长度最长的路径。
28、对一个连通图进行一次深度优先搜索可以遍访图中的所有顶点。
29、图中各个顶点的编号是人为的,不是它本身固有的,因此可以根据需要进行改变。
30、连通图的广度优先搜索中一般要采用队列来暂存刚访问过的顶点31、图的深度优先搜索中一般要采用栈来暂存刚访问过的结点32、有向图的遍历可采用广度优先搜索方法33、在AOE网中,减小任一关键活动上的权值后,整个工期也就相应减少,是错误的。
34、AOE网工程工期为关键路径上的权之和35、在关键路径上的活动都是关键活动,而关键活动也必须在关键路径上36、任何一个关键活动提前完成,不一定将使整个工程提前完成37、求关键路径是以拓扑排序为基础的38、一个事件的最早开始时间同以该事件为尾的弧的活动最早开始时间相同39、关键活动一定位于关键路径上40、在AOV网中弧表示优先关系,是一种有向无环图,AOV网拓扑排序的结果不惟一确定41、最小生成树可以用普里姆、克鲁斯卡尔算法。
、42、表示图的存储结构有(邻接矩阵、邻接表、邻接多重表)。
43、图的深度优先搜索算法类似于二叉树的(前序遍历)。
44、具有n个顶点、e条边的无向图采用邻接矩阵存储方法。