数据结构第二章-线性表(00001)课件.ppt
《数据结构第二章-线性表(00001)课件.ppt》由会员分享,可在线阅读,更多相关《数据结构第二章-线性表(00001)课件.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有且仅有一个直接后继;当i=2,3
2、,4,n时,ai有且仅有一个直接前驱。1、线性表的定义表的长度:线性表中元素的个数n(n0)为线性表的长度;空表:n=0的时候称该线性表为空表;位序:非空线性表中ai是第i(1in)个数据元素,称i为数据元素在线性表中的位序;数据元素:组成线性表的数据元素是一个个的数据项,这种数据项可以是初等项,也可以是组合项;2、线性表的顺序存储线性表的性表的顺序存序存储是指用一组地址连续的存储单元一组地址连续的存储单元一组地址连续的存储单元一组地址连续的存储单元按线性表元素之间的逻辑顺序,依次存储线性表的数据元素。数据元素的逻辑顺序逻辑顺序逻辑顺序逻辑顺序和物理上的存储顺序是完全一致的,物理上存放在位置i
3、的元素,就是按照逻辑顺序存储时的第i个元素。顺序存储的线性表是一种随机存取结构随机存取结构随机存取结构随机存取结构,只要确定了存储线性表的起始位置,就可以随机存取表中的任何一个数据元素。2、线性表的顺序存储用C语言的一维数组来定义线性表的顺序存储结构:#define MAXSIZE 100 /定义一个线性表的最大长度Typedef structelemtype elemMAXSIZE;/定义一个存放数据元素的一维数组,元素类型elemtype根据实际需要确定 int len;/线性表的当前长度SQLIST2、线性表的顺序存储a1a2aianL.Len MAXSIZE设SQLIST L;则L为如
4、上定义的顺序表,表中含有L.len个数据元素,依次存储在L.elem0至L.elemL.len-1中,如下图所示。其中L.leni-1的值即为线性表中的第i个数据元素;该顺序表最多可容纳MAXSIZE个数据元素;elemtype为线性表中数据元素所属类型。3、顺序表的基本操作(2).插入操作插入操作插入操作需要注意的问题顺序表中数据区域分配有MAXSIZE个存储单元,做插入操作时需要先检查表空间是否已满,表满的情况下不能再做插入操作,否则会产生内存溢出错误。要检查插入位置的有效性,这里i的有效范围是1in+1,其中n为原表长度。注意数据移动的方向为向大的下标出移动,如下页图表所示:3、顺序表的
5、基本操作0 a1a101 a2a21i-2 ai-1ai-1i-2i-1 aiei-1i ai+1aiiai+1i+1n-1 anannMAXSIZE-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).
6、删除删除操作操作删除操作需要注意的问题 删除第i个元素是,要删除的元素必须真实存在,所以需要检查i的取值是否有效,i的有效取值范围为1in,否则操作失败。表为空表的时候不能执行删除操作。注意数据移动的方向为向小的下标出移动,如下页图所示:3、顺序表的基本操作0 a1a101 a2a21i-2 ai-1ai-1i-2i-1 aiai+1i-1i ai+1 ann-2n-1 anMAXSIZE-1 MAXSIZE-1(a)删除前(b)删除后3、顺序表的基本操作L-len-;return 1;/删除成功算法时间复杂度3、顺序表的基本操作(4).按按值查找找算法思路算法思路:从第一个元素a1开始依次将
7、顺序表中的元素ai与e相比较,直到找到一个与e相等的数据元素,返回这个数据元素在表中的位置;若查找不到与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,i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 第二 线性 00001 课件
限制150内