2 数据结构之链式、顺序线性表.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 线性表 2.1 线性表的类型定义 2.2 线性表的顺序表示和实现 2.3 线性表的链式表示和实现 2.4 顺序表与链表的比较 2.1 线性表的类型定义 线性表(Linear List) :由n(n≧)个数据元素(结点)a1,a2, …an组成的有限序列。其中数据元素的个数n定义为表的长度。当n=0时称为空表,常常将非空的线性表(n0)。记作: (a1,a2,…an) 这里的数据元素ai(1≤i ≤ n)只是一个抽象的符号,其具体含义在不同的情况下可以不同。 2.1 线性表的类型定义 例1、26个英文字母组成的字母表 (A,B,C,…,Z) 例2、某校从1978年到1983年各种型号的计算机拥有量的变化情况。 (6,17,28,50,92,188) 2.1 线性表的类型定义 例3、学生健康情况登记表如下: 2.1 线性表的类型定义 例4、一副扑克的点数 (2,3,4,…,J,Q,K,A) 2.1 线性表的类型定义 线性表的特点 同一性:线性表中所有元素的性质相同 有序性:除第一个和最后一个数据元素之外,其它数据元素有且仅有一个前驱和一个后继。第一个数据元素无前驱,最后一个数据元素无后继 有穷性:数据元素在表中的位置只取决于它自身的序号,序号不可能无穷,故元素个数不可能无穷 2.1 线性表的类型定义 抽象数据类型(ADT)的表示 ADTADT名 {数据对象:数据对象的定义 结构关系:结构关系的定义 基本操作:基本操作的定义 }ADTADT名 //操作名称(参数表) 操作前提:操作前提描述 操作结果:操作结果描述 线性表的抽象数据类型定义 线性表的抽象数据类型定义 线性表的抽象数据类型定义 2.2 线性表的顺序表示和实现 2.2.1 顺序表存储结构 把线性表的结点按逻辑顺序依次存放在一组地址连续的存储单元里。用这种方法存储的线性表简称顺序表。 假设线性表的每个元素需占用l个存储单元,并以所占的第一个单元的存储地址作为数据元素的存储位置。则线性表中第i+1个数据元素的存储位置LOC(ai+1)和第i个数据元素的存储位置LOC(ai)之间满足下列关系: LOC(ai+1)=LOC(ai)+l 线性表的第i个数据元素ai的存储位置为: LOC(ai)=LOC(a1)+(i-1)*l 顺序存储结构示意图(顺序表): # define MAXSIZE 100 /* 线性表可能达到的最大长度为100 */ typedef int elemtype; typedef struct{ elemtype elem[MAXSIZE]; /*线性表占用的数组空间*/ int len; /* 线性表实际长度,这里记录线性表中最后一个元素在数组elem[ ]中的位置(下标值),空表置-1 */ } Sqlist; # define MAXSIZE 100 typedef struct { elemtype elem[MAXSIZE]; int len; } Sqlist; 顺序表的初始化 顺序表的初始化即构造一个空表,这对表是一个加工型的运算,因此,将L设为指针参数,首先动态分配存储空间,然后,将表中 len 指针置为0,表示表中没有数据元素。算法如下: Sqlist *init_Sqlist( ) { Sqlist *L; L=(Sqlist * )malloc(sizeof(Sqlist)); L-len=0; return L; } 设调用函数为主函数,主函数对初始化函数的调用如下: main() {Sqlist *L; L=Init_Seqlist(); ... } 按序号查找 注意:元素标号与数组的下标之间的关系 Locate(L,x):查找顺序表中是否含有与x值相同的元素 有关算法及程序在“查找”一章中介绍 int Location_Sqlist(Sqlist *L, elemtype x) { int i=0; while(iL-len L-ele

文档评论(0)

海川电子书城 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档