数据结构第二章-线性表(00002)课件.ppt
《数据结构第二章-线性表(00002)课件.ppt》由会员分享,可在线阅读,更多相关《数据结构第二章-线性表(00002)课件.ppt(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章 线性表数据结构本章主要内容l 线性表的定义和基本操作l 线性表的顺序存储和相关操作l 线性表的链式存储和相关操作1、线性表的定义 线性表(Linear_List)简称为表,是n(n0)个数据元素(也叫结点或表元素)组成的有限序列,其特点是各数据元素之间存在着线性关系,即都是一个接一个的按一定顺序排列的,并且线性表要求同一个表中的各数据元素的结构类型必须完全一致。例如:(a1,a2,a3,ai-1,ai,ai+1,an-1,an)即为一个线性表,表中ai-1领先于ai,称ai-1是ai的直接前驱元素,ai+1是ai的直接后续元素。当i=1,2,3,n-1 时,ai有且仅有一个直接后继;当
2、i=2,3,4,n 时,ai有且仅有一个直接前驱。1、线性表的定义表的长度:线性表中元素的个数n(n0)为线性表的长度;空表:n=0 的时候称该线性表为空表;位序:非空线性表中ai 是第i(1in)个数据元素,称i 为数据元素在线性表中的位序;数据元素:组成线性表的数据元素是一个个的数据项,这种数据项可以是初等项,也可以是组合项;2、线性表的顺序存储 线性表的顺序存储是指用 一组地址连续的存储单元 一组地址连续的存储单元按线性表元素之间的逻辑顺序,依次存储线性表的数据元素。数据元素的 逻辑顺序 逻辑顺序和物理上的存储顺序是完全一致的,物理上存放在位置i 的元素,就是按照逻辑顺序存储时的第i 个
3、元素。顺序存储的线性表是一种 随机存取结构 随机存取结构,只要确定了存储线性表的起始位置,就可以随机存取表中的任何一个数据元素。2、线性表的顺序存储用C语言的一维数组来定义线性表的顺序存储结构:#define MAXSIZE 100/定义一个线性表的最大长度Typedef struct elemtype elemMAXSIZE;/定义一个存放数据元素的一维数组,元素类型elemtype根据实际需要确定 int len;/线性表的当前长度SQLIST2、线性表的顺序存储a1a2 ai anL.Len MAXSIZE设SQLIST L;则L 为如上定义的顺序表,表中含有L.len 个数据元素,依次
4、存储在L.elem0 至L.elemL.len-1 中,如下图所示。其中L.leni-1 的值即为线性表中的第i 个数据元素;该顺序表最多可容纳MAXSIZE 个数据元素;elemtype 为线性表中数据元素所属类型。3、顺序表的基本操作(2).插入操作 插入操作需要注意的问题 顺序表中数据区域分配有MAXSIZE 个存储单元,做插入操作时需要先检查表空间是否已满,表满的情况下不能再做插入操作,否则会产生内存溢出错误。要检查插入位置的有效性,这里i 的有效范围是1in+1,其中n 为原表长度。注意数据移动的方向为向大的下标出移动,如下页图表所示:3、顺序表的基本操作0a1a101a2a21i-
5、2ai-1ai-1i-2i-1aiei-1iai+1aiiai+1i+1n-1anannMAXSIZE-1 MAXSIZE-1(a)插入前(b)插入后3、顺序表的基本操作(2).插入操作 算法实现int Insert_SeqList(SeqList*L,int I,datatype e)int j;if(L-len=MAXSIZE-1)printf(“表满将溢出”);/表空间已满的情况,不允许插入return-1;if(iL-len+2)/检查插入位置i 是否有效 printf(“插入位置出错”);return 0;3、顺序表的基本操作(3).删除操作 删除操作需要注意的问题 删除第i 个元素
6、是,要删除的元素必须真实存在,所以需要检查i 的取值是否有效,i 的有效取值范围为1in,否则操作失败。表为空表的时候不能执行删除操作。注意数据移动的方向为向小的下标出移动,如下页图所示:3、顺序表的基本操作0a1a101a2a21i-2ai-1ai-1i-2i-1aiai+1i-1iai+1 ann-2n-1anMAXSIZE-1 MAXSIZE-1(a)删除前(b)删除后3、顺序表的基本操作L-len-;return 1;/删除成功 算法时间复杂度3、顺序表的基本操作(4).按值查找算法思路:从第一个元素a1开始依次将顺序表中的元素ai与e相比较,直到找到一个与e相等的数据元素,返回这个数
7、据元素在表中的位置;若查找不到与e相等的数据元素,则返回-1,表示查找失败。int Locate_SeqList(SeqList*L,datatype e)int i=0;while(idatai!=e)i+if(iL-len)return-1;/没有查找到目标元素elsereturn i;/查找到目标元素,返回其位置下标3、顺序表的基本操作(5).取顺序表中元素算法思路:首先确认所查找数据元素序号是否合法,若合法则直接返回对应元素值,否则操作失败。int Get_SeqList(SeqList*L,int i)if(iL-len+1)/检验查找位置i是否有效 printf(“没有第i个元素”
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 第二 线性 00002 课件
限制150内