信息学奥赛自学材料.docVIP

  • 17
  • 0
  • 约5.22万字
  • 约 14页
  • 2017-03-05 发布于重庆
  • 举报
信息学奥赛自学材料

第一章 什么是数据结构 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 inser

文档评论(0)

1亿VIP精品文档

相关文档