第2章_线性表剖析.ppt

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 线性表 ;线性表是一种线性数据结构 一、线性表的定义 1. 特点: (1)相同类型的数据组成 (2)有穷序列 (3)只有一个初始点无前驱,称为表头(元素) (4)只有一个终端点无后继,称为表尾(元素) (5)相邻数据之间满足1:1的关系 2.举例 (1)一年12个月(1,2,3,……,12) (2)26个字母(a,b,c,……,z);3. 线性表的描述方式 例如:一年12个月 (1)(1,2,3,……12) (2)①→②→③→……→ (3)month=(M,R) M={5,4,6,……9} R={r} r={1,2,2,3,……11,12};也可以用二元组表示线性表的数据结构: linear_list =(A,R) A= {ai | 1? i ? n, n ? o, ai ? ElemType} R={r} r={ ai , ai+1 | 1? i ? n-1} ;4. 说明: (1)线性表的长度:所含元素的个数 (2)允许线性表为空 在一个线性表中若存在着按值的升序或降序排列的字段,则称该字段为有序字段,该线性表为有序表,否则若不存在任何有序字段,则为无序表。;二、抽象数据类型(ADT);抽象数据类型线性表的定义如下: ADT LinearList is: Data: 一个具有ListType类型的线性表L Operation: void InitList(ListType &L); //初始化为空 void CIearList(ListType &L); //清除L中的所有元素 int ListSize (ListType L); //返回L的长度 bool EmptyList (ListType &L); //判断L是否为空 ElemType GetList(ListType L,int pos); //返回L中第pos个元素的值;void TraverseList (ListType L); //遍历输出L中的所有元素 bool FindList(ListType L, ElemType item); //从L中查找并返回元素 bool UpdateList (ListType L,const ElemType item); //修改L中元素 bool InsertList (ListType L, ElemType item,int pos); //向L中插入元素 bool DeleteList (ListType L, ElemType item ,int pos); //从L删除元素 void SortList (ListType L); //对L中的所有元素重新按给定条件排序 end LinearList;2.1.3 操作举例;例2 假定课程(course)记录的结构为: struct course { char Cname[20]; //课程名称 int Chour; //开课学时 int Cterm; //开课学期 };course x={“ “,72}; course y={“程序设计基础”}; course z={“英语”,80,1}; course w={“数据结构”,72,4}; GetList(L2, 3); //返回{“英语”,72,1} FindList (L2, x); //找学时为72的记录{“离散数学”,72,2} FindList (L2, y); //找课程为“程序设计基础”的记录 UpdateList (L2,z); //修改“英语”记录为80学时 InsertList (L2,w,6); //尾部插入一条记录w

文档评论(0)

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

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档