数据结构PASCAL_副本.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章 什么是数据结构 1.1 基本概念和术语 1.2 数据的逻辑结构和物理结构 1.1 基本概念和术语 ?1.数据(data): ? 是对客观事物的符号的表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。 ?2.数据元素(data element): ?是数据的基本单位,在计算机程序中通常作为一个整体来处理。一个数据元素由多个 数据项(data item)组成,数据? 项是数据不可分割的最小单位。 3.数据结构(data structure): 是相互之间存在一种或多种特定关系的数据元素的集合。数据结构是一个二元组,记为: data_structure=(D,S).其中D为数据元素的集合,S是D上关系的集合。 数据元素相互之间的关系称为结构(structure)。根据数据元素之间关系的不同特性,通常由下列四类基本结构: (1)集合:数据元素间的关系是同属一个集合。(图1) (2)线性结构:数据元素间存在一对一的关系。(图2) (3)树形结构:结构中的元素间的关系是一对多的关系。(图3) (4)图(网)状结构:结构中的元素间的关系是多对多的关系。(图4) ??? 图1????????????????????????????? 图2 ????? 图3?????????????????????????????????????????? 图4 1.2 数据的逻辑结构和物理结构 逻辑结构:数据元素之间存在的关系(逻辑关系)叫数据的逻辑结构。 物理结构:数据结构在计算机中的表示(映象)叫数据的物理结构。 一种逻辑结构可映象成不同的存储结构:顺序存储结构和非顺序存储结构(链式存储结构和散列结构)。 ? 2.1 线性表的逻辑结构及基本运算 2.2 线性表的顺序存储结构 2.3 线性表的链式存储结构 2.1 线性表的逻辑结构及基本运算 1.线性表简单的定义 n个数据元素的的有限序列其特点是除了表头和表尾外,表中的每一个元素有且仅有唯一的前驱和唯一的后继,表头有且只有一个后继,表尾有且只有一个前驱。 2.线性表的基本运算 length(L) 返回表L的长度,即元素个数。 IsEmpty(L) 如果表L为空表(长度为0)则返回true,否则返回false。 next(L,p) 这是一个函数,函数值为表L中位置p的后继位置。如果p是L中结束元素的位置,则L.Next(p)=L.end。当L中没有位置p或p=L.end时,该运算无定义。 prev(L,p) 这是一个函数,函数值为表L中位置p的前驱位置。当L中没有位置p或p是L中开始元素的位置时,该运算无定义。 get(L,p) 这是一个函数,函数值为L中位置p处的元素。当p=L.end或L中没有位置p时,该运算无定义。 insert(L,x,p) 在表L的位置p处插入元素x,并将原来占据位置p的元素及其后面的元素都向后推移一个位置。例如,设L为a1,a2,…,an,那么在执行insert(L,x,p)后,表L变为a1,a2,…ap-1,x,ap,…,an 。若p为L.end,那么表L变为a1,a2,…,an,x 。若表L中没有位置p,则该运算无定义。 delete(L,p) 从表L中删除位置p处的元素。例如,当L为a1,a2,…,an时,执行delete(L,p)后,L变为a1,a2,…,ap-1,ap+1,…,an 。当L中没有位置p或p=L.end时,该运算无定义。 locate(L,x) 这是一个函数,函数值为元素x在L中的位置。若x在L中重复出现多次,则函数值为x第一次出现的位置。当x不在L中时,函数值为0 MakeEmpty(L) 这是一个将L变为空表的方法。 例1 假设两个线性表LA,LB分别代表两个集合A和B:求A=A U B proc union(var la:linear_list;lb:linear_list);? begin ?n:=length(la); ?for i:=1 to length(lb) do ?? x:=get(lb,i); ?k:=locate(la,x); ?if k=0 then begin insert(la,n+1,x);n:=n+1 end; end 例2 已知线性表la,lb中的数据元素按值非递减有序排列,现要求将la,lb归并为一个新的线性表lc且lc按值非递减。 proc merge(la,lb:linear_list;var lc:linear_list); begin ?i:=1;j:=1;k:=0; ?while (i=length(la)) and (j=length(lb)) do ? if get(la,i)=get(lb,j) then begin insert(lc,k

文档评论(0)

xiaofei2001128 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档