数据结构,清华大学出版社,严蔚敏吴伟民编著

合集下载

数据结构(c语言版)课件_第八章_排序_(严蔚敏、吴伟民编_清华大学出版社)

数据结构(c语言版)课件_第八章_排序_(严蔚敏、吴伟民编_清华大学出版社)

的堆?
第二个问题解决方法——筛选
方法:输出堆顶元素之后,以堆中最后一个元素替代之;然
后将根结点值与左、右子树的根结点值进行比较,并与其中 小者进行交换;重复上述操作,直至叶子结点,将得到新的 堆,称这个从堆顶至叶子的调整过程为“筛选”
例 38 50 97 76
13 27 65 49 13 38
76 65
50
76
97 13 49 38
65 27
97
49
38
27
输出:13 27 38 49
输出:13 27 38 49
97
65 65 76 50 49 38 97 27 13 输出:13 27 38 49 50 50 76 49
97 65
38 27
76
50 13 49 38
27
13 输出:13 27 38 49 50
输出:13 27 38 49 50 65
76 97 50 49 38 65 27 13 输出:13 27 38 49 50 65 97 50
97 76
49 38
65
27
13
输出:13 27 38 49 50 65 76
76
50 13 49 38
65 27
输出:13 27 38 49 50 65 76 97

38 49 49 38 65 76 97 13 97 76 97 27 13 30 97 27 97 30 初 始 关 键 字
38 49 65 13 76 27 76 13 30 76 27 76 30 97 第 一 趟
38 49 13 65 27 65 13 30 65 27 65 30
38 13 49

长春理工大学研究生入学考试《数据结构》考试大纲

长春理工大学研究生入学考试《数据结构》考试大纲

长春理工大学研究生入学考试《数据结构》考试大纲一、考试科目:数据结构二、适用专业:计算机科学技术学院所有专业三、参考书目:1.《数据结构》(C语言版)严蔚敏吴伟民编著,清华大学出版社, 2011.11。

四、考试内容:(一)主要考查目标1. 理解数据结构的基本概念,掌握数据的逻辑结构、存储结构及其差异,以及基本操作及实现。

2. 掌握基本的数据处理原理和方法,能够对算法进行设计和分析。

3. 能够选择合适的数据结构和方法进行问题求解。

(二)知识点1、线性表1) 线性链表的顺序存储结构;线性链表的链式存储结构;线性表的插入与删除2) 线性表的应用2、栈和队列1) 栈的基本概念;栈的顺序存储结构;栈的链式存储结构;栈的基本操作及应用2) 队列的基本概念;队列的顺序存储结构;队列的链式存储结构;队列的基本操作及应用3、串1) 字符串的基本操作及应用2)字符串的模式匹配4、数组与广义表1) 特殊矩阵的压缩存储2) 广义表的概念和表示;广义表存储结构3)数组及广义表的基本操作和应用5、树与二叉树1) 树的概念2) 二叉树的定义;二叉树的性质;二叉树的顺序存储结构和链式存储结构3) 二叉树遍历4) 线索化二叉树的构造5) 树的存储结构;森林与二叉树的转换;树与森林的遍历6) 哈夫曼(Huffman)树和哈夫曼编码;树的基本应用6、图1) 图的基本概念2) 图的邻接矩阵;邻接表3) 图的深度优先搜索;广度优先搜索4) 最小生成树5) 拓扑排序6)最短路径;关键路径;图的基本应用7、查找1)查找的基本概念2)顺序查找法3)折半查找法4)散列(Hash)表及其查找;散列表与散列方法5)各种查找方法的比较和应用8、内部排序1) 直接插入排序;折半插入排序2) 起泡排序3)简单选择排序4)希尔排序5)快速排序6) 堆排序7) 归并排序8)各种排序方法比较及应用最高贵的复仇是宽容。

有时宽容引起的道德震动比惩罚更强烈。

君子贤而能容罢,知而能容愚,博而能容浅,粹而能容杂。

数据结构严蔚敏c语言版 isbn -回复

数据结构严蔚敏c语言版 isbn -回复

数据结构严蔚敏c语言版isbn -回复题目:《数据结构严蔚敏C语言版ISBN》——实践之路导言:在计算机科学领域,数据结构是一种组织和存储数据的方式。

它能够帮助我们高效地操作和管理数据,使程序更加灵活和可靠,提高计算机程序的执行效率。

其中,严蔚敏教授的《数据结构(C版)》被广泛认定为学习数据结构的经典教材之一。

本文将以严蔚敏教授的《数据结构(C版)》中的一种重要数据结构——International Standard Book Number (ISBN)为主题,通过一步一步的讲解,带领读者从理论和实践两个方面全面了解和应用ISBN。

第一部分:ISBN 基本概念和背景ISBN是用于识别图书的国际标准编号,广泛应用于全球的图书销售和发行中。

ISBN一般由13位数字组成,分为四个部分:出版社标识符、书籍标识符、校验码和引导数字。

它可以唯一地标识一本图书,并且在图书系统中起到重要的辨识功能。

第二部分:ISBN 校验算法校验码是ISBN中的重要部分,通过一定的算法计算出来,用于确保ISBN 的准确性。

严蔚敏教授的《数据结构(C版)》中介绍了一种常用的ISBN 校验算法——循环冗余校验码(CRC)。

CRC算法通过将ISBN的前12位数字和对应的权重相乘,再将乘积相加,最后取结果的模10的余数,得到校验码位。

这个算法简便而高效,使得校验码的计算过程在计算机中能够快速完成。

第三部分:C语言实现ISBN校验算法为了更好地理解和应用ISBN校验算法,我们将以C语言为例进行实验。

首先,我们需要定义一个函数,用于计算ISBN的校验码。

cint calculateCRC(char* isbn){int crc = 0;int weight[12] = {1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3};for(int i = 0; i < 12; i++){crc += (isbn[i] - '0') * weight[i];}crc = (10 - (crc 10)) 10;return crc;}上述代码中,我们定义了一个`calculateCRC`函数,它接收一个表示ISBN的字符串作为参数,并返回计算得到的校验码。

清华大学计算机系列教材.

清华大学计算机系列教材.

数据的结构的表示:
顺序存储结构
链式存储结构 顺序映象——是借助元素在存储器中的相对位置来表示数据元素之 间的逻辑关系。 非顺序映象——是借助指针表示数据元素之间的逻辑关系。 例子:表示复数z1=3.0-2.3i和z2=-0.7+4.8i … … 0415 -2.3 0300 3.0 -2.3 0302 … … 0632 -0.7 3.0 0611 4.8 0634 0613 0415 … …
/ mod
18
逻辑结构的描述——二元组(D,S) 数据结构
(存储结构+操作)的描述——高级语言中的“数据类型
定义 抽象数据 类型ADT 表示 实现
——三元组(D,S,P)
19
抽象数据类型的形式定义-----三元组: (D,S,P) D – 数据对象; S – D上的关系; P – 对D的基本操作集;
24
IsDescending(T) 初始条件: 三元组T已经存在。 操作结果: 如果三元组T的三个元素按降序排列,则 返回TRUE; 否则返回FALSE。 Max(T,&e) 初始条件: 三元组T已经存在,。 操作结果: 用e返回三元组T的最大值。 Min(T,&e) 初始条件: 三元组T已经存在,。 操作结果: 用e返回三元组T的最小值。
S01 L01 S01 S02 …
001,… 003,…
… … … … … L
S …
高等数学 001,003,… 理论力学 002,…
002,…
001,003,…
线性代数 004,…

栾汝书 004,…
计算机处理的对象之间存在着一种简单的线性关系,称为线性 7 数据结构。
例子2:计算机和人对奕问题。 × × × × × ×

数据结构(c语言版)课件 第一章 绪论 (严蔚敏、吴伟民编 清华大学出版社)

数据结构(c语言版)课件 第一章 绪论 (严蔚敏、吴伟民编 清华大学出版社)

可进行的操作的总称
例 C语言中,提供int, char, float, double等基本 数据类型,数组、结构体、共用体、枚举 等构造数据类型,还有指针、空(void)类 型等。用户也可用typedef 自己定义数据类型 typedef struct { int num; char name[20]; float score; }STUDENT; STUDENT stu1,stu2, *p;
存储内容 元素1 元素4 …….. 元素2 ……..
指针 1400 ∧ ……. 1536 …….
1536
元素3
1346
数据结构的三个方面:
线性结构
数据的逻辑结构 非线性结构 数据的存储结构
线性表 栈 队 树形结构
图形结构
顺序存储
链式存储
数据的运算:检索、排序、插入、删除、修改等
数据类型—高级语言中指数据的取值范围及其上
数据的逻辑结构—只抽象反映数据元素的逻辑关系 数据的存储(物理)结构—数据的逻辑结构在计算
机存储器中的实现
存储结构分为: 顺序存储结构——借助元素在存储器中的相对位置来表示 数据元素间的逻辑关系 链式存储结构——借助指示元素存储地址的指针表示数据 元素间的逻辑关系 数据的逻辑结构与存储结构密切相关


……..
……..
…...
…...
…...
…...
多叉路口交通灯管理问题

C AB
AC
AD
B
D
BA
BC
BD
E
DA EA EB DB EC DC ED
A
数据结构定义: 是一门研究非数值计算的程序设
计问题中计算机的操作对象以及它们之间的关系 和操作等等的学科

数据结构严蔚敏PPT(完整版)

数据结构严蔚敏PPT(完整版)
算法(Algorithm):是对特定问题求解方法(步骤)的一种 描述,是指令的有限序列,其中每一条指令表示一个或 多个操作。
算法具有以下五个特性
① 有穷性: 一个算法必须总是在执行有穷步之后结 束,且每一步都在有穷时间内完成。
② 确定性:算法中每一条指令必须有确切的含义。 不存在二义性。且算法只有一个入口和一个出口。
图状结构
一般线性表 栈和队列 串 数组 广义表 一般树 二叉树 有向图 无向图
图1-5 数据逻辑结构层次关系图
1.1.5 数据类型
数据类型(Data Type):指的是一个值的集合和定 义在该值集上的一组操作的总称。
数据类型是和数据结构密切相关的一个概念。 在C 语言中数据类型有:基本类型和构造类型。
问题:必须先运行依据算法编制的程序;依赖软硬 件环境,容易掩盖算法本身的优劣;没有实际价值。 事前分析:求出该算法的一个时间界限函数。
与此相关的因素有: – 依据算法选用何种策略; – 问题的规模; – 程序设计的语言; – 编译程序所产生的机器代码的质量; – 机器执行指令的速度; 撇开软硬件等有关部门因素,可以认为一个特定算
K={k1, k2, …, k9} R={ <k1, k3>,<k1, k8>,<k2, k3>,<k2, k4>,<k2, k5>,<k3, k9>, <k5, k6>,<k8, k9>,<k9, k7>,<k4, k7>,<k4, k6> } 画出这逻辑结构的图示,并确定那些是起点,那些是终点
数据元素之间的关系可以是元素之间代表某种含义 的自然关系,也可以是为处理问题方便而人为定义的 关系,这种自然或人为定义的 “关系”称为数据元素 之间的逻辑关系,相应的结构称为逻辑结构。

数据结构(C语言版)清华大学出版社 严蔚敏 吴伟民

数据结构(C语言版)清华大学出版社 严蔚敏 吴伟民

吉首大学题库一、一、单选题(每题 2 分,共20分)1. 1.对一个算法的评价,不包括如下()方面的内容。

A.健壮性和可读性B.并行性C.正确性D.时空复杂度2. 2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。

A. p->next=HL->next; HL->next=p;B. p->next=HL; HL=p;C. p->next=HL; p=HL;D. HL=p; p->next=HL;3. 3.对线性表,在下列哪种情况下应当采用链表表示?( )A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4. 4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( )A. 2 3 1B. 3 2 1C. 3 1 2D. 1 2 35. 5.AOV网是一种()。

A.有向图B.无向图C.无向无环图D.有向无环图6. 6.采用开放定址法处理散列表的冲突时,其平均查找长度()。

A.低于链接法处理冲突 B. 高于链接法处理冲突C.与链接法处理冲突相同D.高于二分查找7.7.若需要利用形参直接访问实参时,应将形参变量说明为()参数。

A.值B.函数C.指针D.引用8.8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的()。

A.行号B.列号C.元素值D.非零元素个数9.9.快速排序在最坏情况下的时间复杂度为()。

A.O(log2n) B.O(nlog2n) C.0(n) D.0(n2)10.10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。

A. O(n)B. O(1)C. O(log2n)D. O(n2)二、二、运算题(每题 6 分,共24分)1. 1.数据结构是指数据及其相互之间的______________。

当结点之间存在M对N(M:N)的联系时,称这种结构为_____________________。

数据结构教材 出版社: 清华大学出版社 作者: 严蔚敏吴伟民 ISBN ...

数据结构教材 出版社: 清华大学出版社 作者: 严蔚敏吴伟民 ISBN ...

数据结构教材出版社:清华大学出版社作者:严蔚敏吴伟民ISBN :978-7-302-02368-5目录第1章绪论1.1 什么是数据结构1.2 基本概念和术语1.3 抽象数据类型的表现与实现1.4 算法和算法分析第2章线性表2.1 线性表的类型定义2.2 线性表的顺序表示和实现2.3 线性表的链式表示和实现2.4 一元多项式的表示及相加第3章栈和队列3.1 栈3.2 栈的应有和举例3.3 栈与递归的实现3.4 队列3.5 离散事件模拟第4章串4.1 串类型的定义4.2 串的表示和实现4.3 串的模式匹配算法4.4 串操作应用举例第5章数组和广义表5.1 数组的定义5.2 数组的顺序表现和实现5.3 矩阵的压缩存储5.4 广义表的定义5.5 广义表的储存结构5.6 m元多项式的表示5.7 广义表的递归算法第6章树和二叉树6.1 树的定义和基本术语6.2 二叉树6.2.1 二叉树的定义6.2.2 二叉树的性质6.2.3 二叉树的存储结构6.3 遍历二叉树和线索二叉树6.3.1 遍历二叉树6.3.2 线索二叉树6.4 树和森林6.4.1 树的存储结构6.4.2 森林与二叉树的转换6.4.3 树和森林的遍历6.5 树与等价问题6.6 赫夫曼树及其应用6.6.1 最优二叉树(赫夫曼树)6.6.2 赫夫曼编码6.7 回溯法与树的遍历6.8 树的计数第7章图7.1 图的定义和术语7.2 图的存储结构7.2.1 数组表示法7.2.2 邻接表7.2.3 十字链表7.2.4 邻接多重表7.3 图的遍历7.3.1 深度优先搜索7.3.2 广度优先搜索7.4 图的连通性问题7.4.1 无向图的连通分量和生成树7.4.2 有向图的强连通分量7.4.3 最小生成树7.4.4 关节点和重连通分量7.5 有向无环图及其应用7.5.1 拓扑排序7.5.2 关键路径7.6 最短路径7.6.1 从某个源点到其余各顶点的最短路径7.6.2 每一对顶点之间的最短路径第8章动态存储管理8.1 概述8.2 可利用空间表及分配方法8.3 边界标识法8.3.1 可利用空间表的结构8.3.2 分配算法8.3.3 回收算法8.4 伙伴系统8.4.1 可利用空间表的结构8.4.2 分配算法8.4.3 回收算法8.5 无用单元收集8.6 存储紧缩第9章查找9.1 静态查找表9.1.1 顺序表的查找9.1.2 有序表的查找9.1.3 静态树表的查找9.1.4 索引顺序表的查找9.2 动态查找表9.2.1 二叉排序树和平衡二叉树9.2.2 B树和B+树9.2.3 键树9.3 哈希表9.3.1 什么是哈希表9.3.2 哈希函数的构造方法9.3.3 处理冲突的方法9.3.4 哈希表的查找及其分析第10章内部排序10.1 概述10.2 插入排序10.2.1 直接插入排序10.2.2 其他插入排序10.2.3 希尔排序10.3 快速排序10.4 选择排序10.4.1 简单选择排序10.4.2 树形选择排序10.4.3 堆排序10.5 归并排序10.6 基数排序10.6.1 多关键字的排序10.6.2 链式基数排序10.7 各种内部排序方法的比较讨论第11章外部排序11.1 外存信息的存取11.2 外部排序的方法11.3 多路平衡归并的实现11.4 置换一选择排序11.5 最佳归并树第12章文件12.1 有关文件的基本概念12.2 顺序文件12.3 索引文件12.4 ISAM文件和VSAM文件12.4.1 ISAM文件12.4.2 VSAM文件12.5 直接存取文件(散列文件)12.6 多关键字文件12.6.1 多重表文件12.6.2 倒排文件附录A 名词索引附录B 函数索引参考书目。

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

第一章绪论1、数据结构就是计算机中存储、组织数据得方式。

精心选择得数据结构可以带来最优效率得算法。

2、程序设计= 算法+数据结构3、解决问题方法得效率:●跟数据得组织方式有关●跟空间得利用效率有关●跟算法得巧妙程度有关4、数据:所有能输入到计算机中,且被计算机处理得符号得集合,就是计算机操作对象得总称;就是计算机处理得信息得某种特定得符号表示形式。

5、数据元素:数据中得一个“个体”,数据结构中讨论得基本单位。

相当于“记录”,在计算机程序中通常作为一个整体考虑与处理。

6、数据项: 相当于记录得“域”, 就是数据得不可分割得最小单位,如学号。

数据元素就是数据项得集合。

7、数据对象:性质相同得数据元素得集合、例如: 所有运动员得记录集合8、数据结构:就是相互间存在某种关系得数据元素集合。

9、数据结构就是带结构得数据元素得集合。

10、不同得关系构成不同得结构。

11、次序关系:{<ai,ai+1>|i=1,2,3,4,5,6}12、对每种数据结构,主要讨论如下两方面得问题:1)数据得逻辑结构,数据结构得基本操作;2)数据得存储结构,数据结构基本操作得实现;13、数据得逻辑结构:数据之间得结构关系,就是具体关系得抽象。

数据结构得基本操作:指对数据结构得加工处理。

14、数据得存储结构(物理结构):数据结构在计算机内存中得表示。

数据结构基本操作得实现:基本操作在计算机上得实现(方法)。

15、数据结构得有关概念16、数据元素得4类得基本结构:○1集合;○2线性结构:结构中数据元素之间存在一对一得关系;○3树形结构:结构中数据元素之间存在一对多得关系;○4图状结构或网状结构:结构中数据元素之间存在多对多得关系。

17、C语言得优点:C语言可以直接操作内存。

18、每个节点都由两部分组成:数据域与指针域。

19、链接存储结构特点:●比顺序存储结构得存储密度小(每个节点都由数据域与指针域组成)。

●逻辑上相邻得节点物理上不必相邻。

●插入、删除灵活(不必移动节点,只要改变节点中得指针)。

20、数据类型就是一个值得集合与定义在此集合上得一组操作得总称。

21、ADT 有两个重要特征:数据抽象与数据封装。

22、抽象数据类型(Abstract Data Type 简称ADT):就是指一个数学模型以及定义在此数学模型上得一组操作。

23、抽象数据类型有:数据对象〈数据对象得定义〉、数据关系〈数据关系得定义〉、基本操作〈基本操作得定义〉。

24、数据类型得定义与含义。

定义:数据类型就是一个值得集合与定义在这个值集上得一组操作得总称。

含义:将数据按一定次序与形式存放得结构。

24、算法空间复杂度S(n)算法得存储量包括:①输入数据所占得空间;②程序本身所占得空间;③辅助变量所占得空间。

25、算法具有有穷性、确定性、可行性、输入与输出五大特性。

26、抽象数据类型具有数据抽象、数据封装得特点。

27、数据得储存结构分为:顺序存储结构与链式存储结构。

第二章线性表1、线性结构得特点:在数据元素中得非空有限集中。

(1)存在唯一得一个被称作“第一”得数据元素;(2)存在唯一得一个被称作“最后一个”得数据元素;(3)除第一个外,集合中得每一个数据元素均只有一个前驱;(4)除最后一个外,集合中得每一个数据元素均只有一个后继。

2、线性表(Linear List) :一个线性表就是n个数据元素得有限序列。

3、线性表得顺序存储实现:typedef struct {ElementType Data[MAXSIZE];int Last;} List;List L, *PtrL;4、初始化(建立空得顺序表)List *MakeEmpty( ){ List *PtrL;PtrL = (List *)malloc( sizeof(List) );PtrL->Last = -1;return PtrL;}5、查找int Find( ElementType X, List *PtrL ){ int i = 0;while( i <= PtrL->Last && PtrL->Data[i]!= X )i++;if (i > PtrL->Last) return -1; /* 如果没找到,返回-1 */else return i; /* 找到后返回得就是存储位置*/}6、插入算法void Insert( ElementType X, int i, List *PtrL ){ int j;if ( PtrL->Last == MAXSIZE-1 ){ /* 表空间已满,不能插入*/printf("表满");return;}if ( i < 1 || i > PtrL->Last+2) { /*检查插入位置得合法性*/printf("位置不合法");return;}for ( j = PtrL->Last; j >= i-1; j-- )PtrL->Data[j+1] = PtrL->Data[j]; /*将ai~an倒序向后移动*/PtrL->Data[i-1] = X; /*新元素插入*/PtrL->Last++; /*Last仍指向最后元素*/return;}7、删除算法void Delete( int i, List *PtrL ){ int j;if( i < 1 || i > PtrL->Last+1 ) { /*检查空表及删除位置得合法性*/printf (“不存在第%d个元素”, i );return ;}for ( j = i; j <= PtrL->Last; j++ )PtrL->Data[j-1] = PtrL->Data[j]; /*将ai+1~an顺序向前移动*/PtrL->Last--; /*Last仍指向最后元素*/return;}8、求表长int Length ( List *PtrL ){ List *p = PtrL; /* p指向表得第一个结点*/int j = 0;while ( p ) {p = p->Next;j++; /* 当前p指向得就是第j 个结点*/}return j;}9、查找(1)按序号查找: FindKth;List *FindKth( int K, List *PtrL ){ List *p = PtrL;int i = 1;while (p !=NULL && i < K ) {p = p->Next;i++;}if ( i == K ) return p;/* 找到第K个,返回指针*/else return NULL;/* 否则返回空*/}(2)按值查找: FindList *Find( ElementType X, List *PtrL ){List *p = PtrL;while ( p!=NULL && p->Data != X )p = p->Next;return p;}10、插入(在链表得第i-1(1≤i≤n+1)个结点后插入一个值为X得新结点)List *Insert( ElementType X, int i, List *PtrL ){ List *p, *s;if ( i == 1 ) { /* 新结点插入在表头*/s = (List *)malloc(sizeof(List)); /*申请、填装结点*/s->Data = X;s->Next = PtrL;return s; /*返回新表头指针*/}p = FindKth( i-1, PtrL ); /* 查找第i-1个结点*/if ( p == NULL ) { /* 第i-1个不存在,不能插入*/printf("参数i错");return NULL;}else {s = (List *)malloc(sizeof(List)); /*申请、填装结点*/s->Data = X;s->Next = p->Next; /*新结点插入在第i-1个结点得后面*/p->Next = s;return PtrL;}}11、删除(删除链表得第i (1≤i≤n)个位置上得结点)List *Delete( int i, List *PtrL ){ List *p, *s;if ( i == 1 ) { /* 若要删除得就是表得第一个结点*/s = PtrL; /*s指向第1个结点*/PtrL = PtrL->Next; /*从链表中删除*/free(s); /*释放被删除结点*/return PtrL;}p = FindKth( i-1, PtrL ); /*查找第i-1个结点*/if ( p == NULL ) {printf(“第%d个结点不存在”, i-1); return NULL;} else if ( p->Next == NULL ){printf(“第%d个结点不存在”, i); return NULL;} else {s = p->Next; /*s指向第i个结点*/p->Next = s->Next; /*从链表中删除*/free(s); /*释放被删除结点*/return PtrL;}}12、链表不具备得特点就是 1 。

①可随机访问任一节点②插入删除不须要移动元素③不必事先估计存储空间④所需空间与其长度成正比13、带头结点得单链表head为空得判定条件就是 2 。

①head==NULL ②head->next==NULL③head->next==head ④head!=NULL14、如果最常用得操作就是取第i个结点及其前驱,则采用 4 存储方式最节省时间。

①单链表②双链表③单循环链表④顺序表第三章Chapter 3 栈(stacks)与队列(queues)1、栈就是限定仅能在表尾一端进行插入、删除操作得线性表。

2、栈得特点就是“后进栈得元素先出栈”(last in, first out),故栈又称为后进先出表(LIFO)。

3、一个栈就是一些元素得线形列表,其中元素得插入与删除均在表得同一端进行。

插入与删除发生得一端称为栈顶(the top of the stack)。

4、第一个进栈得元素在栈底,最后一个进栈得元素在栈顶,第一个出栈得元素为栈顶元素,最后一个出栈得元素为栈底元素。

5、连续栈(Contiguous Stack)得类型定义#define MaxStack 50Typedef struct{datatype stack[MaxStack];int top;}Seqstack;Seqstack *s;6、判断栈就是否已满?viod Push(Seqstack *s, datatype x ){if (s->top>=MaxStack-1) printf(“overflow”);else {s-> top++;s->stack[s->top]=x;}}7、判断栈就是否为空?datatype pop(Seqstack *s ){ if (s->top<0){printf(“underflow”); return(NULL);}return(s->stack[s->top]);s->top--;}8、返回栈顶元素得值,栈不发生变化。

相关文档
最新文档