数据结构课件 第2章 线性表.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
福州大学数学与计算机科学学院 第2章 表 学习要点: ? 理解表是由同一类型的元素组成的有限序列的概念。 ? 熟悉定义在抽象数据类型表上的基本运算。 ? 掌握实现抽象数据类型的一般步骤。 ? 掌握用数组实现表的步骤和方法。 ? 掌握用指针实现表的步骤和方法。 ? 掌握用间接寻址技术实现表的步骤和方法。 ? 掌握用游标实现表的步骤和方法。 ? 掌握单循环链表的实现方法和步骤。 ? 掌握双链表的实现方法和步骤。 ? 熟悉表的搜索游标的概念和实现方法。 2.1 ADT表(List) 2.1.1 ADT表的数据模型 表是由n(n?0)个同一类型(通常记为 datatype类型)的元素(结点)a(1),a(2),…,a(n)组成的有限序列。 2.1 ADT表(List) 2.1.3 ADT表的逻辑特征 非空表有且仅有一个开始元素a(1),它没有前驱。当n1时,它有一个后继a(2)。 非空表有且仅有一个结束元素a(n),它没有后继。当n1时,它有一个前驱a(n-1)。 当n2时,表的其余元素a(k)(2?k?n-1)都有一个前驱和一个后继。 表中元素按其位置的顺序关系是它们之间的逻辑关系 。 2.1 ADT表(List) 2.1.4 ADT表上定义的常用的基本运算 (1) Empty( ): (2) Size( ): (3) Locate(x): (4) Retrieve(k,x):获取表中位置k处的元素,存入x中 (5) Insert(k,x):在表的位置k之后插入元素x (6) Erase(k,x):从表中删除位置k处的元素,存入x中 (7) PrintList( ): 注意:运算名称的取法、需要的形式参数的个数、各参数的取名和含义、具体运算的约定、各参数取值(特别是边界值)和返回值的约定、各参数取值和返回值的类型的确定。 2.2 用数组(data)实现ADT表(List) 2.2.1 用数组实现的ADT表的特征数据及其类型 表的元素的类型:为了适应表元素类型(datatype)的变化,应将表类List定义为一个模板类。在该模板类中,用T来表示用户指定的元素类型(datatype)。 表的长度:n(约定n=0为空表) 数组能容纳的表的最大长度:MaxSize 约定数组下标为k-1的分量存放表的第k个元素,k=1,2,3,…,n。其结构如下图 2.2.2用数组实现的ADT表(List)的定义 templateclass T class List { private: int n; int MaxSize; T * data; // 表元素数组 ? public: List(int Max = 10); // 构造函数 ~List( ) {delete [ ] data;} // 析构函数,复杂性O(1) bool Empty( ) const {return n = = 0;} // 复杂性O(1) int Size( ) const {return n;} // 复杂性O(1) int Locate(const T x) const; // 返回表中元素x位置 bool Retrieve(int k, T x) const; //返回表中第k个元素,存于x中 ListT Insert(int k, const T x); //在表的位置k处之后插入元素x ListT Erase(int k, T x); //从表中删除位置k处的元素,存入x中 void PrintList(ostream out) const; }; 2.2.3 ADT表(List)的定义中未实现的函数的实现 与分析 (1)构造函数:List(int Max) templateclass T ListT::List(int Max) // 构造函数 { MaxSize = Max; data = new T[MaxSize]; n = 0; } 2.2.3 ADT表(List)的定义中未实现的函数的实现与分析(续) (2)为元素x定位: int Locate(const T x) const templateclass T int ListT::Locate(const T x) const { for (int i = 0; i n; i++) if (data[i] = = x) return ++i; return 0; } 2.2.3

文档评论(0)

柳风飘香 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档