[理学]第二章线性表new.ppt

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

第二章 线性表 第一节 线性表 (Linear List)的类型定义 线性结构:在数据元素的非空有限集中,(1)存在唯一的一个被称作“第一个”的数据元素; (2)存在唯一的一个被称作“最后一个”的数据元素; (3)除第一个外,集合中的每个数据元素均只有一个前驱; (4)除最后一个外,集合中的每个数据元素均只有一个后继。 线性表:数据元素具有相同的特性,表中相邻的数据元素之间存在序偶关系。 有时也称向量。 记作(a1, a2, …, an) ai 是表中数据元素,n 是表长度。 抽象数据类型线性表的定义 ADT List{ 数据对象: 基本操作: InitList(L) DestoryList(L) ClearList(L) ListEmpty(L) ListLength(L) PutElem(L,I,e) 例1:假设两个线性表LA和LB分别表示两个集合A和B,求新集合A?B。 算法2.1: void union(List La, List Lb) { } 例2:已知一个非纯集合B,试构造一个纯集合A,使A中只包含B中所有值各不相同的成员。 void purge(List La, List Lb) { } 例3:判别两个集合A和B是否相等。 算法2.3: (1)构造一个和线性表La相同的线性表Lc; (2)对Lb中的每个数据元素,在Lc中进行查询,若存在,则从Lc中删除之;若不存在,则说明两个集合不相等; (3)重复(2)直到Lb的元素检查完毕; (4)若Lc为空,则两个集合相等。 bool isequal(List La, List Lb) { La_len=ListLength(La); Lb_len=ListLength(Lb); if(La_len!=Lb_Len) return FALSE; else { InitList(Lc); for(k=1; k=La_len; k++) { GetElem(La, k, e); ListInsert(Lc, k, e); } found=TRUE; for(k=1; k=Lb_len found; k++) { GetElem(Lb, k, e); I= LocateElem(Lc,e); if(I==0) found=FALSE; else ListDelete(Lc, I, e); } if(found ListEmpty(Lc)) return TRUE; else return FALSE; DestroyList(Lc); } } 第二节 顺序表 (Sequential List) 顺序表的定义和特点 定义 将线性表中的元素相继存放在一个连续的存储空间中。逻辑结构与物理结构是一致的。 预定义: #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef struct { ElemType *elem; int length; int listsize; }SqList; 线性表初始化算法 (1)分配内存空间; (2)判断分配是否成功,如成功继续,否则终止; (3)初始化线性表的长度与存储容量。 void InitList_Sq(SqList L) { L.elem=new ElemType [LIST_INIT_SIZE]; if(!L.elem) exit(OVERFLOW); L.length=0; L.listsize= LIST_INIT_SIZE; } 顺序搜索图示 算法: (1)初始化指针,定位在线性表的起始位置; (2)顺序查找,若存在则返回位置,否则返回0; 算法: (1)判断插入点是否合理,如合理则继续,否则结束; (2)若当前存储空间已满,则增加分配,同时进行元素的复制; (3)从后向前依次移动插入点之后的元素; (4)插入元素; (5)

文档评论(0)

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

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

1亿VIP精品文档

相关文档