- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]数据结构C语言第二章
上节课内容复习: 数据结构的种类(集合、线性结构、树形结构、图状结构) 本节内容: 线性表的类型定义,线性表的顺序表示和实现 本节重点、难点: 线性表的类型定义,线性表的顺序存储结构及基本操作 第二章 线性表(Linear_List) ? 2.1 线性表的类型定义 1.线性表的定义: 是由n(n=0)个数据元素a1,a2,a3, ……an组成的有限序列。 其中:n为数据元素的个数,也称为表的长度。 当n=0 时,称为空表。 非空的线性表(n0) 记作: ( a1,a2,a3, ……an) 表中ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素。 2.线性表(a1,a2,a3, ……an)的特点: 在数据元素的非空有限集中, (1)存在唯一的一个被称为“第一个”的数据元素; (2)存在唯一的一个被称为“最后一个”的数据元素; (3)除第一个之外,集合中的每个数据元素均只有一个前驱; (4)除最后一个外,集合中的每个数据元素均只有一个后继。 线性表中的数据元素类型多种多样,但同一线性表中的元素必定具有相同特性,在一些复杂的线性表中,每一个数据元素又可以由若干个数据项组成,在这种情况下,通常将数据元素称为记录(record)。 注意: (1)线性表中的所有数据元素的数据类型是一致的。 (2)数据元素在线性表中的位置只取决于它的序号。 (3)相邻数据元素之间存在着序偶关系。 (4)结点间的逻辑关系是线性的。 3.抽象数据类型线性表的定义如下: 注意: L和L的区别 可类比merge(int *t, int n)和merge1(int t, int n)中参数t的不同情况,前者的t是指针变量,通过指针(=地址)和实参建立联系,从而t的改变将影响实参值同时改变;后者的t与实参是值传递,所以t的改变将不影响实参值。 ? 2.2 线性表的顺序表示和实现(顺序表) 1. 线性表的顺序表示: 是指用一组地址连续的存储单元依次存放线性表的数据元素,称这种存储结构的线性表为顺序表。 特点:在顺序表中逻辑结构上相邻的数据元素,其物理位置也是相邻的。 2.顺序表中数据元素的存储地址 若一个数据元素仅占一个存储单元,则其存储方式参见下图。 3.顺序表的描述: 可用C语言的一维数组实现: #define LIST_INIT_SIZE 100 //线性表存储空 间的初始分配量 #define LISTINCREMENT 10 //线性表存储空 间的分配增量 typedef struct{ ElemType *elem; //存储空间基址,数组 指针elem指示线性表的基地址 int length; //线性表的当前长度 int listsize; //当前分配的存储容量,以 一个数据元素存储长度为单位 }SqList; SqList L; 4.顺序表的几种基本运算 (1)初始化运算 Status InitList_Sq(Sqlist L){ L.elem=(Elemtype *)malloc (LIST_INIT_SIZE*sizeof(Elemtype)); //分配内存单元 if (! L.elem) exit (OVERFLOW); //存储分配失败 L.Length=0; //空表长度为0 L.Listsize=LIST_INIT_SIZE; //初始存储容量 return OK; }//InitList_Sq (2)插入运算 在第i(1=i=n+1)个元素之前插入一个新的数据元素x。使长度为n的线性表变为长度为n+1的线性表: (a1,a2,…,ai-1,ai,…,an) 插入算法的思想: 1. 将线性表中的第i个至第n个数据元素后移一个位置(共需移动n-i+1个数据元素), 2. 将数据元素x插入到第i数据元素之前(即第i-1数据元素之后)——将x存入L.elem[i-1]中, 3. 将线性表长度
您可能关注的文档
- [工学]数字图像处理-图像分割-讲义PPT.ppt
- [工学]数字图像 第6章.ppt
- [工学]数字图像处理图像编码.ppt
- [工学]数字图像处理四.ppt
- [工学]数字电子技术 第三章 逻辑门电路.ppt
- [工学]数字电子技术习题答案.pdf
- [工学]数字电子技术基础 第五章.ppt
- [工学]数字电子技术基础课件第2章 逻辑代数基础.ppt
- [工学]数字电子技术检测题及答案.doc
- [工学]数字电子技术第1章.ppt
- 建银国际证券-港股熊牛切换走向深化:新质生产力助力打开港股长期上升空间.pdf
- 国金证券-创业板50择时跟踪:2月进一步提升创业板50看涨比例.pdf
- 信用|关注存单和城投下沉的机会.pdf
- 政策半月观:三大方向进一步受重视.pdf
- 固定收益专题报告:建筑行业信用风险及投资价值全梳理.pdf
- AI行业跟踪报告第58期:华勤技术,AI云、端全线卡位,全面受益于AI落地.pdf
- 高频选股因子:大单因子表现继续反弹,AI增强组合持续回撤.pdf
- 投资策略研究*专题报告:科技引领“中国资产”价值重估进度加快.pdf
- 电子行业:高阶智驾加速普及,催动硬件快速放量.pdf
- 浙商证券-北汽蓝谷-600733-北汽蓝谷深度报告:联袂小马打造无人出租,携手华为进军全民智驾.pdf
文档评论(0)