数据结构-(严蔚敏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-3章)【圣才出品】
1 / 155
圣才电子书 十万种考研考证电子书、题库视频学习平台

③树形结构:数据元素之间存在一个对多个的关系。 ④图状结构或网状结构:数据元素之间存在多个对多个的关系。 【注意】区分这四种基本结构可以根据元素间的对应关系。 如图 1-1 所示为上述四类基本结构的关系图。
圣才电子书 十万种考研考证电子书、题库视频学习平台

第1章 绪 论
1.1 复习笔记
一、什么是数据结构 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的 关系和操作等的学科。
二、基本概念和术语 1.数据 数据是对客观事物的符号表示,是计算机科学中所有能输入到计算机中并能被计算机程 序处理的符号的总称。
圣才电子书 十万种考研考证电子书、题库视频学习平台

构)。 其中,关系有两种表示方法:顺序映象和非顺序映象。这两种表示方法对应两种存储结 构:顺序存储结构和链式存储结构。 a.顺序映象:用相对位置来表示数据元素之间的逻辑关系。 b.非顺序映象:用指针表示数据元素之间的逻辑关系。
5 / 155
圣才电子书 十万种考研考证电子书、题库视频学习平台

象数据类型。 答:(1)数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并 能被计算机程序处理的符号的总称。 (2)数据元素是数据的基本单位。 (3)数据对象是性质相同的数据元素的集合,是数据的一个子集。 (4)数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 (5)存储结构是数据结构在计算机中的表示(又称映象或数据的物理结构)。 (6)数据类型是一个值的集合和定义在这个值集上的一组操作的总称。 (7)抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。
3 / 155

数据结构 严蔚敏C语言版 学习复习提纲

数据结构 严蔚敏C语言版 学习复习提纲

期末复习复习第一章绪论数据:计算机处理的信息总称数据项:最小单位数据元素:最基本单数据对象:元素集合数据结构:相互之间存在一种或多种特定关系的数据元素集合。

概念:数据元素之间的关系线性结构:一对逻辑结构非线性结构数据结构树:一对多图:多对多顺序存储结构链表存储结构存储结构。

索引。

基。

散列。

础知数据运算识算法描述:指令的有限有序序列有穷性确定性算法特性可行性算法输入输出时间复杂度算法分析空间复杂度、计算机算法必须具备输入、输出、可行性、确定性、有穷性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.在平均情况下,快速排序法最快,堆积排序法最节省空间。

数据结构 (严蔚敏C语言版) 学习、复习提纲

数据结构 (严蔚敏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语言版)知识点总结笔记课后答案

严蔚敏数据结构(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语言版)笔记和习题(含考研真题)详解

严蔚敏《数据结构》(C语言版)笔记和习题(含考研真题)详解
目录
第 1 章 绪 论............................................................................................................................................... 4 1.1 复习笔记 .......................................................................................................................................... 4 1.2 强化习题详解 ................................................................................................................................... 7 1.3 考研真题与典型题详解 ................................................................................................................... 22
第 4 章 串................................................................................................................................................... 114 4.1 复习笔记 ....................................................................................................................................... 114 4.2 强化习题详解 ................................................................................................................................ 118 4.3 考研真题与典型题详解 ..................................................................................................................138

严蔚敏数据结构复习整理完整版

严蔚敏数据结构复习整理完整版

严蔚敏数据结构复习整理完整版数据结构是计算机科学中的重要基础课程,是指数据组织、存储和处理的方式。

严蔚敏教授是中国计算机教育领域的知名专家,他的《数据结构》一书被广泛使用于计算机相关专业的教学中。

下面是严蔚敏数据结构复习整理的完整版,总结了数据结构的基本概念、常见数据结构的特点和使用场景,以及一些重要的算法思想和应用。

一、数据结构的基本概念1.数据:数据是计算机能识别、处理的符号集合,可以是数字、文字、图像等。

2.数据元素:数据中的一个个基本单位,也称为记录。

3.数据项:数据元素中的一个个最小单位,是不可分割的数据单位。

二、常见数据结构1.数组:一组具有相同数据类型的元素的集合,可以通过下标来访问和操作。

2.链表:一组通过指针连接起来的数据元素的集合,可以分为单向链表和双向链表。

3.栈:一种特殊的线性表,只能在表尾进行插入和删除操作,遵循先进后出的原则。

4.队列:一种特殊的线性表,只能在表尾进行插入操作,在表头进行删除操作,遵循先进先出的原则。

5.树:一种非线性的数据结构,具有层次结构的特点,包括二叉树、二叉树、平衡树等。

6.图:一种非线性的数据结构,由顶点和边组成,包括有向图和无向图。

7.堆:一种完全二叉树的结构,用于实现优先队列等需要快速找到最值的场景。

8.哈希表:一种以键值对形式存储数据的数据结构,通过哈希函数将键映射到对应的位置,常用于快速查找场景。

三、常用算法和应用1.线性查找和二分查找:分别用于在无序数组和有序数组中查找指定的元素。

2.冒泡排序和快速排序:分别用于对数组进行升序排序,冒泡排序的时间复杂度较高,快速排序的时间复杂度较低。

3.广度优先和深度优先:分别用于在图中特定的路径,广度优先适用于找最短路径,深度优先适用于找所有路径。

4.迪杰斯特拉算法和贪心算法:迪杰斯特拉算法用于计算图中最短路径,贪心算法用于求解最优问题时,每一步都选择当前最好的选择。

5.动态规划算法:一种分阶段求解的问题求解方法,适用于具有最优子结构的问题,将问题分解为子问题,并逐步求解。

数据结构 C语言版(严蔚敏版)第9章 查找

数据结构 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
动态查找表:若在查找过程中可以将查找 表中不存在的 数据元素插入 ,或者从查找表中 删除某个数据元素 ,则称这类查找表为动态查 找表。动态查找表在查找过程中查找表可能会 发生变化。对动态查找表进行的查找操作称为 动态查找。 关键字:是数据元素中的某个数据项。唯 一能标识数据元素(或记录)的关键字,即每 个元素的关键字值互不相同,我们称这种关键 字为主关键字;若查找表中某些元素的关键字 值相同,称这种关键字为次关键字。例如,银 行帐户中的帐号是主关键字,而姓名是次关键 字。

1.严蔚敏版数据结构复习题集与参考答案

1.严蔚敏版数据结构复习题集与参考答案
}
(2)i=0;
do{
i++;
}while((i!=n)&&(a[i]!=x));
(3)switch{
case x<y: z=y-x; break;
case x=y: z=abs(x*y); break;
default: z=(x-y)/abs(x)*abs(y);
1.6在程序设计中,常用下列三种不同的出错处理方式:
1.3设有数据结构(D,R),其中
D d1,d2,d3,d4
试按图论中图的画法惯例画岀其逻辑结构图。
1.4试仿照三元组的抽象数据类型分别写岀抽象数据类型复数和有理数的定义(有理数是其分子、分母均 为自然数且分母不为零的分数)。
解:
ADT Complex{
数据对象:D={r,i|r,i为实数}
数据关系:R={<r,i>}
操作结果:如果复数C的两个元素按升序排列,则返回1,否则返回0
IsDescending(C)
操作结果:如果复数C的两个元素按降序排列,则返回1,否则返回0
Max(C,&e)
操作结果:用e返回复数C的两个元素中值较大的一个
Min(C,&e)
操作结果:用e返回复数C的两个元素中值较小的一个
}ADT Complex
(1)用exit语句终止执行并报告错误;
(2)以函数的返回值区别正确返回或错误返回;
(3)设置一个整型变量的函数参数以区别正确返回或某种错误返回。 试讨论这三种方法各自的优缺点。
解:(1)exit常用于异常错误处理,它可以强行中断程序的执行,返回操作系统。
(2)以函数的返回值判断正确与否常用于子程序的测试,便于实现程序的局部控制。

数据结构C语言版(严蔚敏) 教材讲义

数据结构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语言版)知识点总结笔记课后答案

严蔚敏数据结构(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语言版)笔记和习题(含考研真题)详解

严蔚敏《数据结构》(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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

期末复习第一章 绪论 复习1、计算机算法必须具备输入、输出、可行性、确定性、有穷性5个特性。

2、算法分析的两个主要方面是空间复杂度和时间复杂度。

3、数据元素是数据的基本单位。

数据结算 法数据:计算机处理的信息总称数据项:最小单位 数据元素:最基本单概念:数据元素之间的关系 线性结构:一对一 非线性结构 树:一对多 图:多对多顺序存储结构链表存储结构算法描述:指令的有限有有穷性确定性 可行性时间复杂4、数据项是数据的最小单位。

5、数据结构是带结构的数据元素的集合。

6、数据的存储结构包括顺序、链接、散列和索引四种基本类型。

第二章 线性表 复习1、在双链表中,每个结点有两个指针域,包括一个指向前驱结点的指针 、一个指向后继结点的指针2、线性表采用顺序存储,必须占用一片连续的存储单元定义节省空间随机存取 插入3、线性表采用链式存储,便于进行插入和删除操作4、线性表采用顺序存储和链式存储优缺点比较。

5、简单算法第三章栈和队列复习1、 栈和队列的异同点。

2、 栈和队列的基本运算3、 出栈和出队4、基本运算存储结栈的概念:在一端操作的线性运算算栈的特点:先进后出初始化进栈顺序队队列概念:在两端操作的线性假溢出链队列 队列特点:先进先出基本运顺序:队空: 队满:(1)队初始化判空 进队第四章 串 复习第五章 数组和广义表 复习定义:由n(≥1)个字符组成的有限序列 紧缩格式非紧缩格式以字节为单位的存储基本运(s)串长度 (s12) 联接 (s12)比较模式匹失败链接值匹配算法单字符链表串串变量的存储映像: 串名、串值对应关系表顺序存储压缩存储行优先顺序存放列优先顺序存放稀疏矩应 用表达式广义表定义:n(≥0)个元素的有限序表头:(A)= a 1概念:长度、深度、原子、子表尾:(A)=(a23,…)表结特殊矩对称矩阵三角矩阵三元组存储:三元组原子结第六章 树 复习1、三个结点可以组成2种不同形态的树。

2、一个稀疏矩阵*n 采用三元组形式表示,若完成了其的转置运算要经过哪几步:二叉树概定义:递归定义,不为空双亲、孩子、叶子、兄弟、存储方顺序:满、完全二二叉树已知先根、中根序列画树;先根线索线索线索树的画法树、森林与二叉树的相互树、森二叉排树的应哈夫曼左 中 哈夫曼树的矩阵的行、列数值互换、矩阵元素所在行列值互换、元素在矩阵中排列的位置)重新排列3、若二叉树中每一层结点的个数都达到了最大,则称为一棵满二叉树。

4、树最适合用来表示现有元素之间具有分支层次关系的数据5、哈夫曼树是带权路径长度最小的二叉树。

6、以下那些项为用十字链表表示的稀疏矩阵元素结点信息元素所在行和列、元素的值、指向该元素所在行的下一个元素的指针、指向该元素所在列的下一个元素的指针。

7、一个广义表可以为其它广义表所共享。

8、广义表可以是一个多层次的结构。

9、压缩存储的三角矩阵和对称矩阵的存储空间相同。

10、广义表中的元素类型可以不相同。

11、两个稀疏矩阵的和仍为稀疏矩阵。

12、二叉树的先序遍历序列中,任意一个结点均处在其孩子结点的前面。

13、对于一棵具有n个节点的树,该树中所有节点的度数之和为1。

14、树和森林的遍历中有中序遍历。

15、二叉树用链式存储时,空链域数多于非空链域数。

16、由森林转换成二叉树,其根节点的右子树总是空的。

17、哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近。

18、当一棵具有n个叶子结点的二叉树的值为最小时,称其树为树,且其二叉树的形状必是唯一的。

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个顶点的无向图, 采用邻接矩阵表示,图中的边数等于邻接矩阵中非零元素之和的一半。

11、邻接表中边结点数目为奇数的图一定是有向图。

12、不同的求最小生成树的方法最后得到的生成树是不一定相同的。

13、在一个图中,所有顶点的度数之和等于图的边数的2倍。

14、在一个有向图的拓朴序列中,若顶点a在顶点b之前,则图中必有一条弧<>,这是不正确的说法。

15、关键路径是从源点到汇点的最长路径。

任意网的关键路径是不唯一的。

16、有向图中一个顶点的度应该是它的出度与人度之和。

17、n个顶点的无向图最多有n(1)/2条边,n个顶点的有向图最多有n(1)条边。

18、在无向图中,若顶点i到顶点j有路径,则这两个顶点之间是连通的。

19、连通图的最小生成树是不惟一的。

20、邻接矩阵主要用来表示顶点之间的关系。

若表示某图的邻接矩阵不是对称矩阵,则该图一定是有向图。

21、若表示某图的邻接矩阵中出现了全零行或者全零列,则该图一定是非连通图或非强连通图22、无向图的邻接表中边结点数目一定为偶数。

23、最短路径一定是简单路径。

24、不能对强连通图进行拓扑排序。

25、存储无向图的邻接矩阵是对称的,因此可以只存储邻接矩阵的下(上)三角部分。

26、在网络中可以有多条关键路径。

27、用边表示活动的网络(网)的关键路径是指从源点到终点的路径长度最长的路径。

28、对一个连通图进行一次深度优先搜索可以遍访图中的所有顶点。

29、图中各个顶点的编号是人为的,不是它本身固有的,因此可以根据需要进行改变。

30、连通图的广度优先搜索中一般要采用队列来暂存刚访问过的顶点31、图的深度优先搜索中一般要采用栈来暂存刚访问过的结点32、有向图的遍历可采用广度优先搜索方法33、在网中,减小任一关键活动上的权值后,整个工期也就相应减少,是错误的。

34、网工程工期为关键路径上的权之和35、在关键路径上的活动都是关键活动,而关键活动也必须在关键路径上36、任何一个关键活动提前完成,不一定将使整个工程提前完成37、求关键路径是以拓扑排序为基础的38、一个事件的最早开始时间同以该事件为尾的弧的活动最早开始时间相同39、关键活动一定位于关键路径上40、在网中弧表示优先关系,是一种有向无环图,网拓扑排序的结果不惟一确定41、最小生成树可以用普里姆、克鲁斯卡尔算法。

、42、表示图的存储结构有(邻接矩阵、邻接表、邻接多重表)。

43、图的深度优先搜索算法类似于二叉树的(前序遍历)。

44、具有n个顶点、e条边的无向图采用邻接矩阵存储方法。

则邻接矩阵的大小为(n×n)。

45、图的广度优先搜索算法类似于二叉树的按层次遍历46、一个连通图的生成树是包含图中所有顶点的一个极小连通子图47、任何一个连通图的生成树一棵或多棵48邻接表中边结点数目为偶数的图可能是无向图,也可能是有向图。

第八章查找复习1、常用处理冲突的两类方法是开放地址法和拉链法。

2、如在查找的同时对表修改,则相应的表称动态查找表。

3、二叉平衡树又称树。

4、二分查找法要求待查表的关键字的值必须有序。

5、哈希法是一种将关键字转换为存储地址的存储方法。

6、对有序表而言,采用二分查找总比采用顺序查找法速度快。

7、一般来说,用哈希函数得到的地址,冲突不可能避免,只能尽可能减少。

8、在二叉排序树中插入新结点时,不必移动其他结点,仅需改动某个结点的指针,使它由空变为非空即可。

9、只要按值有序排列的线性表采用顺序存储结构就可以采用折半查找方法。

10、分块查找过程是首先查找索引表,然后再到相应的块中具体查找记录。

11、在散列文件中进行查找不涉及关键字的比较。

12、散列冲突是指同一个关键字对应了多个不同的散列地址。

13、在采用链地址法处理冲突的散列表中,散列函数值相同的关键字是链接在同一个链表中的。

14、装载因子是散列表的一个重要参数,它反映了散列表的装满程度。

15、散列表的查找效率主要取决于处理冲突方法、散列函数。

16、二分查找要求结点有序、顺序存储17、散列函数的构造方法有直接定址法、数字分析法、平方取中法、除留余数法等几种。

18、按存储器不同,可以将排序方法分为内部排序、外部排序。

19、对于折半搜索所对应的判定树,它既是一棵二叉搜索树、理想平衡树的树.20、散列查找是由键值(散列函数值)确定散列表中的位置,并进行存储或查找。

21、采用二分查找长度为n的线性表时,每个元素的平均查找长度为( O(2n ))。

22、采用顺序查找长度为n的线性表时,每个元素的平均查找长度为((1)/2 )。

23、通常把查找过程中对关键字需要执行的()作为衡量一个查找算法效率优劣的标准。

24、在表长是N的顺序表中,实施顺序查找,在查找不成功时,与关键字比较的次数(1 )。

25、如果要求一个线性表既能较快的查找,又能适应动态变化的要求,则采用(分块)查找方法。

26、线性表必须是(用向量存储的有序表),才能进行二分查找。

27、设有100个元素,用折半查找法进行查找时,最小比较次数是(1 )。

相关文档
最新文档