2线性表和数组汇编.ppt

  1. 1、本文档共127页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2线性表和数组汇编

引入线性结构 线性结构是最常用、最简单的一种数据结构。而线性表是一种典型的线性结构。其基本特点是线性表中的数据元素是有序且是有限的。 在这种结构中: ① 存在一个唯一的被称为“第一个”的数据元素; ② 存在一个唯一的被称为“最后一个”的数据元素; ③ 除第一个元素外,每个元素均有唯一一个直接前驱; ④ 除最后一个元素外,每个元素均有唯一一个直接后继。 列车编组 线性结构的定义: 若结构是非空有限集,则有且仅有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后继。 线性结构的表达式(a1,a2,a3,…an) 线性结构的特点: ① 有且仅有一个首结点和尾结点 ② 除首尾结点以外,其它结点有且仅有一个前驱结点 和一个后继结点 线性结构包括:线性表、栈、队列、数组和广义表 结点间的逻辑关系是一对一的 线性结构 ? 2.1 线性表的逻辑结构 ? 2.2 线性表的顺序表示和实现 ? 2.3 线性表的链式表示和实现 ? 2.4 一元多项式的表示和相加 第2章 线性表 一、线性表的定义 L=(a1,a2,… ai-1,ai,ai+1,… an) 由n个元素构成的有限序列,记为 n为线性表的长度,当n=0时L为空表 ai的直接前驱 ai的直接后继 ① 同一线性表中的元素必定具有相同特性,即属 同一数据对象,且相邻元素具有序偶关系 ② n是有限大 2.1 线性表的逻辑结构 线性表中的数据元素ai所代表的具体含义随具体应用的不同而不同,在线性表的定义中,只不过是一个抽象的表示符号。 线性表中的结点可以是单值元素(每个元素只有一个数据项) 。 例1: 26个英文字母组成的字母表: (A,B,C、…、Z) 例2 : 某校从1978年到1983年各种型号的计算机拥有量的变化情况:(6,17,28,50,92,188) 例3 : 一副扑克的点数 (2,3,4,…,J,Q,K,A) ◆ 线性表中的结点可以是记录型元素,每个元素含有多个数据项 ,每个项称为结点的一个域 。每个元素有一个可以唯一标识每个结点的数据项组,称为关键字。 例4:学生情况登记表 学号 姓名 性别 年龄 班级于春梅 女 20 计021林苹 女 20 计021康强 男 21 计021黄一爽 女 20 计021 … … … … … 2.1 线性表的类型定义 若线性表中的结点是按值(或按关键字值)由小到大(或由大到小)排列的,称线性表是有序的。 线性表是一种相当灵活的数据结构,其长度可根据需要增长或缩短。 对线性表的数据元素可以访问、插入和删除。 二、线性表的抽象数据类型表示(ADT 见教材P7) 数据对象: 数据关系: 基本操作: D={ai | ai∈ElemSet, i=1,2,…,n,n≥0} R={ ai –1, ai | ai –1, ai ∈D, i=2,…,n} InitList( L ); //建空表,初始化 DestoryList( L ); //撤销表,释放内存 int ListLength( L ); //求表中元素个数,即表长 PriorElem( L, cur_e, pre_e ); //求当前元素cur_e的前驱 NextElem( L, cur_e, next_e ); //求当前元素cur_e的后继 GetElem(L,i); //取线性表L中的第i个元素 ListInsertBefore(L, i, e ); //在第i个元素之前插入新的元素e ListDelete( L, i,e ); //删除第i个元素并返回此元素 2.1 线性表的逻辑结构 两集合合并 教材P18 void union(List La,List Lb) { La_len=ListLength(La); Lb_len=ListLength(Lb); for(i=1;i=Lb_len;i++) { GetElem(Lb,i,e); if( !LocateElem(La,e,equal) ) ListInsert(La,++La_len,e); } } void MergeList(List La,List Lb,List Lc) { InitList(Lc); i=j=1

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档