- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch2 线性表
第二章 线性表 学习目的 掌握线性表的逻辑结构和存储结构,以及线性表的基本运算即实现算法。 2.1 线性表的定义 是一个数据元素的有序(次序)集 特性: 集合中必存在唯一的一个“第一元素”; 集合中必存在唯一的一个“最后元素”; 除最后元素在外,均有唯一的后继; 除第一元素之外,均有唯一的前驱。 例如:字母表,扑克牌 抽象数据类型 ADT List { 数据对象:D={ai|ai?ElemSet, I=1,2,…n,n?0} 数据关系:R={ai-1,ai|ai-1,ai ? D, I=2,3,…,n} 基本操作:InitList(L) 初始化 DestroyList(L), ClearList(L), ListEmpty(L), ListLength(L), GetElem(L,I,e), LocateElem(L,e,compare()) PriorElem(L,cur_e, prio_e) NextElem(L,cur_e, next_e) ListInsert(L,I,e), ListDelete(L,I,e) ListTraverse(L,visit()) }ADT LIST 基本操作的作用: 利用基本操作实现复杂操作, 基本操作算法思想是复杂操作算法的基础。 例2-1 用线性表La, Lb分别表示两个集合 A、B,现在求其并集C。 分下列三步进行: 1.从线性表LB中依次取得每个数据元素; 2.依值在线性表LA中进行查访; 3.若不存在,则插入之。 for ( i=1; i =Lb_len; i++) { GetElem(Lb, i, e); if (!LocateElem(La, e, equal)) ListInsert(La, ++La_len, e); } //for }//union 例 2-2 已知一个非纯集合B(集合中有相同元素),试构造一个纯集合A, 使A中只含B中所有值各不相同的成员。 2.2 线性表的顺序存储结构 函数结果主要状态代码:p10 #define TURE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define OVERFLOW = -2 Typedef int status; 二、基本操作的实现: 1、构造空表 Status InitList_Sq(SqList L) { //构造空表L L.elem = (ElemType *)malloc(LIST_INIT_SIZE* sizeof(ElemType)); if (! L.elem) exit (OVERFLOW); L.length=0; L.listsize=LIST_INIT_SIZE; L. incrementsize=LISTINCREMENT; return OK; }//InitList_Sq 插入位置:i =1 i=n+1 Status ListInsert_Sq(SqList L, int i, ElemType e) { //在顺序表L中第i个位置插入新元素e, if (i1||iL.length+1) return ERROR; //非法的位置 if (L.length=L.listsize) {//当前空间已满 newbase = (ElemType *)realloc(L.elem, (L.listsize+LISTINCREMENT)*sizeof(ElemType)) ; if (!newbase) exit (OVERFLOW); L.elem = newbase; L.listsize=L.listsize+INCREMENT; } //插入
您可能关注的文档
- 96隧道灯规格书.doc
- 904 九上第四课.ppt
- 9-细胞骨架.ppt
- 9、LED显示屏驱动电源详细参数.doc
- 9305HOTCHINESE.ppt
- 9大状语从句.doc
- 9早期量子论(全).ppt
- 9月11号.ppt
- a disk read error occurred.doc
- 9款女士香水性感度排行榜.doc
- c程序员面试题及答案.doc
- 第01讲 运动的描述(练习)(解析版)-【上好课】2025年高考物理一轮复习讲练测(新教材新高考).pdf
- c的面试题及答案.doc
- 第01讲 运动的描述(练习)(原卷版)-【上好课】2025年高考物理一轮复习讲练测(新教材新高考).pdf
- 2003年非典后航空复盘分析报告.pdf
- 第02讲 匀变速直线运动的规律(练习)(解析版)-【上好课】2025年高考物理一轮复习讲练测(新教材新高考).pdf
- 第02讲 匀变速直线运动的规律(练习)(原卷版)-【上好课】2025年高考物理一轮复习讲练测(新教材新高考).pdf
- c考试题库及答案.doc
- c面试题及答案.doc
- 汽车管件及座椅骨架、异形金属结构件生产线改造项目(技术改造)报告表.pdf
文档评论(0)