数据结构(C语言版)线性表资料.ppt

  1. 1、本文档共82页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
上堂课要点回顾;数据结构课程的内容;第2章 线性表 ;线性结构的特点: 在数据元素的非空有限集中, 存在唯一的一个被称为“第一个”的数据元素; 存在唯一的一个被称为“最后一个”的数据元素; 除第一个元素之外,集合中的每个元素均只有一个前驱; 除最后一个元素之外,集合中的每个元素均只有一个后继。 ;图2.1 线性表的逻辑结构 ; 线性表(Linear List)是由n(n≥0)个类型相同的数据元素组成的有限序列,记作(a1, a2, …, ai-1, ai, ai+1, …, an)。这里的数据元素ai(1≤i≤n)只是一个抽象的符号,其具体含义在不同情况下可以不同,它既可以是原子类型,也可以是结构类型,但同一线性表中的数据元素必须属于同一数据对象。此外,线性表中相邻数据元素之间存在着序偶关系,即对于非空的线性表(a1, a2, …,ai-1, ai, ai+1, …, an),表中ai-1领先于ai,称ai-1是ai的直接前驱,而称ai是ai-1的直接后继。除了第一个元素a1外,每个元素ai有且仅有一个被称为其直接前驱的结点ai-1,除了最后一个元素an外,每个元素ai有且仅有一个被称为其直接后继的结点ai+1。线性表中元素的个数n被定义为线性表的长度,n=0时称为空表。 ;(a1, a2, … ai-1,ai, ai+1 ,…, an) ;例1 分析26 个英文字母组成的英文表; 线性表的特点可概括如下:  同一性:线性表由同类数据元素组成,每一个ai必须属于同一数据对象。  有穷性:线性表由有限个数据元素组成,表长度就是表中数据元素的个数。  有序性:线性表中表中相邻数据元素之间存在着序偶关系ai, ai+1。  由此可看出,线性表是一种最简单的数据结构,因为数据元素之间是由一前驱一后继的直观有序的关系确定;线性表又是一种最常见的数据结构,因为矩阵、数组、字符串、堆栈、 队列等都符合线性条件。 ;2.1.2 线性表的抽象数据类型定义;(2) DestroyList(L) 初始条件: 线性表L已存在。  操作结果: 将L销毁。  (3) ClearList(L) 初始条件: 线性表L已存在 。  操作结果: 将表L置为空表。  (4) ListEmpty(L) 初始条件: 线性表L已存在。  操作结果: 如果L为空表则返回真, 否则返回假。 ; (5) ListLength(L) 初始条件: 线性表L已存在。  操作结果: 如果L为空表则返回0, 否则返回表中的元素个数。 (6) LocateElem(L, e,compare()) 初始条件: 表L已存在, compare()是数据元素判定函数。  操作结果: 返回L中第1个与e满足关系compare() 的数据元素的位序,如果不存在,返回值为0。  (7) GetElem(L, i,e) 初始条件: 表L存在, 且1≤i≤ListLength(L)。 操作结果: 用e返回线性表L中第i个元素的值。 ; (8) ListInsert (L, i, e) 初始条件:表L已存在,1≤i≤ListLength(L)+1。  操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1。 (9) ListDelete (L, i, e) 初始条件: 表L已存在且非空, 1≤i≤ListLength(L)。 操作结果: 删除L的第i个数据元素, 并用e返回其值, L的长度减1。  } ADT List ;例2-1 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); } } O(Listlength(LA)* Listlength(LB)) ;例2-2 void MergeList(List La,List Lb,List Lc){ InitList(Lc); i=j=1;k=0; La

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档