数据结构_(严蔚敏C语言版)_学习、复习提纲.
- 格式:doc
- 大小:120.50 KB
- 文档页数:13
数据结构⽼师给的复习要点(严蔚敏版)第⼀章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个评价标准是什么?特征:有穷性、确定性、可⾏性、输⼊、输出。
严蔚敏《数据结构》(C语言版)笔记和习题(含考研真题)详解第1章绪论一、什么是数据结构数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。
二、基本概念和术语1数据数据是对客观事物的符号表示,是计算机科学中所有能输入到计算机中并能被计算机程序处理的符号的总称。
2数据元素数据元素是数据的基本单位。
3数据对象数据对象是性质相同的数据元素的集合,是数据的一个子集。
4数据结构数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
(1)数据结构的基本结构根据数据元素之间关系的不同特性,通常有下列四类基本结构:①集合。
数据元素属于“同一个集合”,并无其他复杂关系。
②线性结构。
数据元素之间存在一个对一个的关系。
③树形结构。
数据元素之间存在一个对多个的关系。
④图状结构或网状结构。
数据元素之间存在多个对多个的关系。
【注意】区分这四种基本结构可以根据元素间的对应关系。
如图1-1所示为上述四类基本结构的关系图。
图1-1 四类基本结构的关系图(2)数据结构的形式定义数据结构的形式定义为:Data_Structure=(D,S)其中:D表示数据元素的有限集,S表示D上关系的有限集。
(3)数据结构在计算机中的表示数据结构包括数据元素的表示和关系,在计算机中称为数据的物理结构(又称存储结构)。
其中,关系有两种表示方法:顺序映象和非顺序映象。
这两种表示方法对应两种存储结构:顺序存储结构和链式存储结构。
a.顺序映象:用相对位置来表示数据元素之间的逻辑关系。
b.非顺序映象:用指针表示数据元素之间的逻辑关系。
5数据类型数据类型是一个值的集合和定义在这个值集上的一组操作的总称。
6抽象数据类型抽象数据类型(ADT)由一个值域和定义在该值域上的一组操作组成。
【注意】抽象数据类型是对数据类型架构的一种全局体现,使我们能够更加清晰地看待某一数据类型。
7多形数据类型多形数据类型是指其值的成分不确定的数据类型。
期末复习复习第一章绪论数据:计算机处理的信息总称数据项:最小单位数据元素:最基本单数据对象:元素集合数据结构:相互之间存在一种或多种特定关系的数据元素集合。
概念:数据元素之间的关系线性结构:一对逻辑结构非线性结构数据结构树:一对多图:多对多顺序存储结构链表存储结构存储结构。
索引。
基。
散列。
础知数据运算识算法描述:指令的有限有序序列有穷性确定性算法特性可行性算法输入输出时间复杂度算法分析空间复杂度、计算机算法必须具备输入、输出、可行性、确定性、有穷性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串长度、空白串、空串。
数据结构期末复习要点第一章绪论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)理解二叉树遍历算法的递归代码,能够读懂代码含义。
数据结构复习题集一、判断题1.线性表的长度是线性表所占用的存储空间的大小。
( F )2.双循环链表中,任意一结点的后继指针均指向其逻辑后继。
( F )3.在对链队列做出队操作时,不会改变front指针的值。
( F )4.如果两个串含有相同的字符,则说它们相等。
( F )5.如果二叉树中某结点的度为1,则说该结点只有一棵子树。
(T )6.已知一棵树的先序序列和后序序列,一定能构造出该树。
( F )7.图G的一棵最小代价生成树的代价未必小于G的其它任何一棵生成树的代价。
(T )8.图G的拓扑序列唯一,则其弧数必为n-1(其中n为顶点数)。
( F )9.对一个堆按层次遍历,不一定能得到一个有序序列。
(T )10.直接选择排序算法满足:其时间复杂度不受数据的初始特性影响,为O(n2)。
(T )11. 线性表的逻辑顺序与物理顺序总是一致的。
( F )12. 线性表的顺序存储表示优于链式存储表示。
( F )13.线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。
(T )14. 二维数组是其数组元素为线性表的线性表。
( F )15. 每种数据结构都应具备三种基本运算:插入、删除和搜索。
(T )16.(101,88,46,70,34,39,45,58,66,10)是堆;(T )17.将一棵树转换成二叉树后,根结点没有左子树;( F )18.对不含相同元素的同一输入序列进行两组不同的、合法的入栈和出栈组合操作,所得的输出序列也一定相同;(F)19.哈夫曼树是带权外部路径长度最短的树,路径上权值较大的结点离根较近( T )20.用一组地址连续的存储单元存放的元素一定构成线性表。
(F)21.堆栈、队列和数组的逻辑结构都是线性表结构。
( T )22.给定一组权值,可以唯一构造出一棵哈夫曼树。
( F)23.相对于索引文件的基本数据,索引表包含的信息量相对少得多,因此。
索引表可以常驻内存。
( T)24.在平均情况下,快速排序法最快,堆积排序法最节省空间。
期末复习 第一章 绪论 复习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种不同形态的树。
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,则无右儿子。
第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章 绪论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章绪论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.顺序映象的特点是借助元素在存储器中的相对位置来表⽰数据元素之间的逻辑关系。
期末复习 第一章 绪论 复习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队空:frontrear ∧初始化 判空 进队 出队取队首元素第五章 数组和广义表 复习串存储结构运 算概 念顺序串链表串定义:由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)tp表结点特殊矩阵对称矩阵三角矩阵对角矩阵三元组存储:三元组m n t链表存储:十字链表hptag=1tp原子结点hptag=0第六章 树 复习1、三个结点可以组成2种不同形态的树。
2、一个稀疏矩阵Am*n 采用三元组形式表示,若完成了其的转置运算要经过哪几步: 矩阵的行、列数值互换 、矩阵元素所在行列值互换、元素在矩阵中排列的位置)重新排列3、若二叉树中每一层结点的个数都达到了最大,则称为一棵满二叉树。
4、树最适合用来表示现有元素之间具有分支层次关系的数据5、哈夫曼树是带权路径长度最小的二叉树。
树二叉树概 念二叉树定义:树中结点的度≤2 有序树可为空树(n=0)性质定义:递归定义,不为空双亲、孩子、叶子、兄弟、祖先 树深、结点的度、有序树、无序树存储方式顺序:满、完全二叉树 链表:二叉、三叉链表先根遍历序列中根遍历序列 后根遍历序列1. 第i 层至多有2i-1个结点。
2. 数深为k 的二叉树,至多有2k -1个结点。
3. n 0=n 2+14.n 个结点的二叉树树深为∟log 2n/2」+15. 双亲结点为i ,做孩子结点的编号为2i ,有孩子2i+1。
二叉树 的遍历 已知先根、中根序列画树;已知后根、中根序列画树;先根线索 中根线索 后根线索线索 二叉树 线索树的画法树、森林与二叉树的相互转换 树、森林的遍历 树、森林 二叉排序树树的应用哈夫曼树左 中 右 小 中 大 哈夫曼树的画法 编码:左0右16、以下那些项为用十字链表表示的稀疏矩阵元素结点信息元素所在行和列、元素的值、指向该元素所在行的下一个元素的指针、指向该元素所在列的下一个元素的指针。
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、稀疏矩阵元素的三元组表示的项:元素所在行、元素所在列、元素的值第七章 图 复习1、强连通分量是有向图的极大连通子图。
连通分量指的是无向图中的极大连通子图。
2、在一个图中,所有顶点的度数之和等于图的边数的2倍。
3、最短路径的生成斯算法可用迪杰斯特拉算法。
4、有向图的邻接表表示适用于求顶点的出度,逆邻接链表适用于求顶点的入度。
5、最小生成树只能是带权连通图的运算。
6、一个有向无环图的拓扑排序的序列是不唯一的。
7、一个图的邻接矩阵表示法是惟一的。
一个图的邻接表表示法是不惟一的。
8、若一个有向图的邻接矩阵中对角线以下元素均为零,则该图的拓扑有序序列必定存在。
若一个有向图中存在回路,则该图的拓扑有序序列不存在。
9、用邻接矩阵法存储一个图所需的存储单元数目与图的边数无关,与顶点数有关。
10、有n 个顶点的无向图, 采用邻接矩阵表示,图中的边数等于邻接矩阵中非零元素之和的一半。
图存储结构概念二叉树定义:树中结点的度≤2 有序树 可为空树(n=0)邻接矩阵邻接链表、逆邻接链表定义:G=(V , E) 无向图、有向图 路径、回路(环)、简单路径、简单回路 连通图、连通分量、强连通图、强连通分量 顶点的度:TD(Vi)=ID(Vi)+OD(Vi)边与度的关系:2e=∑TD(Vi) (1≤i ≤n)网络:AOV 网、AOE 网深度优先遍历序列DFS 广度优先遍历序列BFS图的遍历Prim 普里姆算法Kruskal 克鲁斯卡尔算法生成树 最小生成树顶点←→顶点Dijkstra 迪杰斯特拉 单源点→其它顶点 Floyd 弗洛伊德:用邻接矩阵计算最短路径拓扑排序:AOV 网应 用关键路径:AOE 网用邻接链表存储:从小编号开始遍历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、最小生成树可以用普里姆、克鲁斯卡尔算法。