轻松学C语言之简单 数据 结构.pptx

轻松学C语言之简单 数据 结构.pptx

ID:52815321

大小:4.75 MB

页数:92页

时间:2020-03-17

轻松学C语言之简单 数据 结构.pptx_第1页
轻松学C语言之简单 数据 结构.pptx_第2页
轻松学C语言之简单 数据 结构.pptx_第3页
轻松学C语言之简单 数据 结构.pptx_第4页
轻松学C语言之简单 数据 结构.pptx_第5页
资源描述:

《轻松学C语言之简单 数据 结构.pptx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第14章简单数据结构数据结构是程序储存,组织数据的一种方式,是程序中处理数据的基本单位。本章主要讲解简单的数据结构的基本操作。14.1线性表线性表是最简单也是最常用的一种数据结构。例如,C语言中的数组就是线性表应用的一个典型代表。14.1.1线性表的基本概念线性表是由n(n≥0)个类型相同的数据元素(结点)组成的有限序列。通常线性表的表示形式以及说明如图14.1所示。14.1.1线性表的基本概念14.1.1线性表的基本概念14.1.2线性表的基本操作线性表的基本操作通过以下函数可以实现,有关于这些函数的形式以

2、及功能如表14-3。函数实现功能MakeEmpty(L)将线性表L变为空表Length(L)返回表L的长度,即表中元素个数Get(L,i)获得线性表L中位置i处的元素(1≤i≤n)Prev(L,i)取i位置数据元素的前趋元素Next(L,i)取i位置数据元素的后继元素Locate(L,x)函数的返回值为数据元素x在L中的位置Insert(L,I,x)在线性表L的位置i处插入元素x,将原占据位置i的元素及后面的元素都向后推一个位置Delete(L,p)从表L中删除位置p处的元素IsEmpty(L)如果表L为空表

3、(长度为0)则返回true,否则返回falseClear(L)清除所有元素Init(L)同MakeEmpty(L),初始化线性表为空Traverse(L)遍历输出所有元素Find(L,x)查找线性表L中元素x首次出现的位置,如果成功返回出现的位置,否则返回0Update(L,x)更新元素Sort(L)对所有元素重新按给定的条件排序rstr(string1,string2)用于字符数组的求string1中出现string2的首地址14.1.2线性表的基本操作14.1.3线性表的顺序存储结构线性表的顺序存储结构的

4、含义如图14.5所示。14.1.3线性表的顺序存储结构14.1.3线性表的顺序存储结构14.1.4顺序表的基本操作顺序表的基本操作包括初始化、求顺序表的长度、判断顺序表是否为空、清空顺序表、获取顺序表中第i个元素。下面详细讲解这些基本操作。1.初始化顺序表L在对顺序表操作之前我们必须先对顺序表初始化。对顺序表的初始化的算法如图14.8所示。2.求顺序表的长度求顺序表长度所用到的函数为Length(),该算法的实现如图14.9所示。3.判断顺序表是否为空如果顺序表的长度为0,则顺序表为空表。判断顺序表是否为空的

5、算法具体实现如图14.10所示。4.清空顺序表清空顺序表也就是删除顺序表中的所有数据元素,清空之后的顺序表的长度length为0。清空顺序表的算法如图14.11所示。5.获取顺序表中第i个元素取顺序表数据元素运算是返回顺序表中第i个数据元素,注意i取值范围是1≤i≤length。如果i的取值正确,运算的时间复杂度为O(1)。取顺序表数据元素的算法实现如图14.12所示。14.1.5顺序表的插入对顺序表初始化后,我们需要向顺序表中插入我们所需的数据,然后才能对其进行其它的操作。对顺序表的插入前与插入后数据元素的

6、位置改变如图14.13所示。14.1.6顺序表的查找1.按位置查找元素顺序表是一种随机存取结构。所以,在顺序表中按位置查找元素非常容易,只有查找位置合法,可直接返回对应的数据元素。按位置查找元素算法实现如图14.16所示。2.按值查找元素按值查找元素是在顺序表中进行的,查找是否有结点值等于给定值x的结点,若有的话,则返回首次找到的其值为x的结点的存储位置;如果顺序表中没有与给定值匹配的数据元素,返回一个特殊值表示查找失败。顺序表按值查找元素算法实现如图14.17所示。3.顺序表的查找操作效率分析效率主要是从时

7、间复杂度和空间复杂度来看的,由于现在计算机的内存足够用程序实现,所以我们这里只考虑时间复杂度。按位置查找数据元素的时间复杂度分析如图14.18所示。3.顺序表的查找操作效率分析14.1.7顺序表的删除如果对顺序表的第i个元素删除操作,那么低i+1个元素以及其后面的元素都会向前移动一个位置,并且顺序表的长度减1,具体算法以及算法分析如图14.20所示。14.1.7顺序表的删除14.1.8顺序表操作的算法典型案例14.1.9线性表的链式存储结构线性表的链式存储结构是指用一组任意的存储单元(可以连续,也可以不连续)

8、存储线性表中的数据元素。在链式存储中,结点不仅包含数据元素的基本信息内容,而且包含数据元素之间的逻辑关系,如图14.24所示。14.1.9线性表的链式存储结构14.1.9线性表的链式存储结构14.1.10单链表的基本操作1.初始化链表L初始化链表主要完成头结点空间的申请和赋值。在以后的算法中不加说明则默认为单链表是带头结点的。初始化链表实现算法如图14.27所示。2.清空链表L清空操作是指清除单链表

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。