3线性表的顺序表示和实现讲义.ppt

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

线性表的顺序表示和实现 需考虑的问题(步骤) 当前表是否已满? 输入(插入位置)是否有效? 插入元素 6)输出顺序表中的元素 void PrintList(Sqlist L) { // 输出顺序表中的元素 for(int i=0;iL.length;i++) printf(%5d,L.elem[i]); } 7)求元素的前驱 status PriorElem(Sqlist L,Elemtype cur_e,Elemtype pre) { //第一个数据元素没有前驱 int i = 1; // i 的初值为第1 元素的位序 while ((i1) (i=L.length) (L.elem[i-1] !=cur_e)) ++i; if ((i 1) (i = L.length)) { pre=L.elem[i-2]; return OK; } else return 0; } 课堂总结 主要内容:线性表的顺序表示和实现,包括顺序表类型定义,初始化,定位,取元素,插入,删除等操作。 重点难点:顺序表插入、删除操作。 * 第二章线性表 2.1 线性表的类型定义 2.2 线性表的顺序表示和实现 教学内容 学习目的: 1. 了解线性表的逻辑结构特性,了解线性表的ADT定义。 2. 掌握线性表顺序存储结构。 3. 顺序表:掌握C描述方法,熟练掌握查找、插入、删除算法;掌握构造一个空的顺序线性表的算法,并掌握在此空表的基础上进行其他基本操作(取元素、求前驱元素、求后继元素等)算法的实现。 重点难点:顺序表的插入、删除算法及性能分析。 线性结构的特点为: 1.集合中必存在唯一的一个“第一元素”; 2.集合中必存在唯一的一个 “最后元素” ; 3.除最后元素外,均有 唯一的后继; 4.除第一元素之外,均有 唯一的前驱。 线性结构是一个数据元素的有序(次序)集 线性表是一种最简单的线性结构。 导入:什么是线性表? 1.线性表定义 ai必须具有相同特性,即属于同一数据对象; 相邻数据元素有序偶关系,ai-1是ai的直接前驱元素, ai+1是ai的直接后继元素。 数据元素ai在线性表中有确定的位置i,i称为位序。 线性表中数据元素的个数n称为线性表的长度, n=0时,线性表称为空表。 2.1 线性表的类型定义 定义: n个具有相同特性的数据元素组成的有限序列; 表示:{a1,…,ai-1,ai,ai+1,…,an} 2.抽象数据类型线性表的定义 ADT List { 数据对象: D={ ai | ai ∈ElemSet, i=1,2,...,n, n≥0 } (称 n 为线性表的表长; 称 n=0 时的线性表为空表。) 数据关系: R1={ ai-1 ,ai |ai-1 ,ai∈D, i=2,...,n } (设线性表为 (a1,a2, . . . ,ai,. . . ,an), 称 i 为 ai 在线性表中的位序) 基本操作:-------P19 } ADT List 例1 假设利用两个线性表LA和LB分别表示两个集合A和B,要求一个新的集合A=A∪B。 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); } }//union 例 2—P20 时间复杂度为 O(ListLength(LA) × ListLength(LB)) 逻辑结构是本质 通过上面的例子可以看出: 逻辑结构是数据组织的某种“本质性”的东西: (1)逻辑结构与数据元素本身的形式、内容无关。 (2)逻辑结构与数据元素的相对位置无关。 (3)逻辑结构与所含数据元素的个数无关。 算法的设计取决于选定的逻辑结构,而算法的实现依赖于采用的存储结构。 1. 顺序映像 —— 以 x 的存储位置和 y 的存储位置之间某种关系表示逻辑关系x,y。 2.2 线性表的顺序表示和实现 线性表的顺序表示指用一组地址连续的存储单元依次存放线性表中的数据元素。以物理位置的相邻表示逻辑关系的相邻,这种机内表示称为线性表的顺序存储结构(顺序映像),称这

文档评论(0)

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

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

1亿VIP精品文档

相关文档