第310章 有毛病!

离语 semaphore 1712 字 7小时前

1、线性表的逻辑结构

线性结构是最常用、最简单的一种数据结构。而线性表是一种典型的线性结构。其基

本特点是线性表中的数据元素是有序且是有限的。在这种结构中:

①存在一个唯一的被称为“第一个”的数据元素;

②存在一个唯一的被称为“最后一个”的数据元素;

③除第一个元素外,每个元素均有唯一一个直接前驱;

④除最后一个元素外,每个元素均有唯一一个直接后继。

例如:线性序列a1,a2,…an线性表:是由n(n≧0)个数据元素(结点)a1,a2,…an组成的有限序列。该序列中的

所有结点具有相同的数据类型。其中数据元素的个数n称为线性表的长度。

当n=0时,称为空表。

当n>0时,将非空的线性表记作:(a1,a2,…an)

a1称为线性表的第一个(首)结点,an称为线性表的最后一个(尾)结点。

a1,a2,…ai-1都是ai(2≦i≦n)的前驱,其中ai-1是ai的直接前驱;

ai+1,ai+2,…an都是ai(1≦i≦n-1)的后继,其中ai+1。

2、顺序表

顺序存储:把线性表的结点按逻辑顺序依次存放在一组地址连续的存储单元里。用这

种方法存储的线性表简称顺序表。

有非空的线性表:(a1,a2,…an)。顺序存储如图所示。

顺序存储的线性表的特点:

◆线性表的逻辑顺序与物理顺序一致;

◆数据元素之间的关系是以元素在计算机内

“物理位置相邻”来体现。设有非空的线性表:(a1,

a2,…an)。顺序存储如图所示。

设线性表的每个元素需占用l个存储单元,以所

占的第一个单元的存储地址作为数据元素的存储位

置。则线性表中第i+1个数据元素的存储位置LOC(ai+1)

和第i个数据元素的存储位置LOC(ai)之间满足下列关

系:LOC(ai+1)=LOC(ai)+l

线性表的第i个数据元素ai的存储位置为:数组具有随机存取的特性

LOC(ai)=LOC(a0)+(i)*l

在高级语言(如C语言)环境下:数组具有随机存取的特性,因此,借助数组来描述顺序

表。除了用数组来存储线性表的元素之外,顺序表还应该有表示线性表的长度属性,所以用

结构类型来定义顺序表类型。

#defineMAXSIZE100//数组最大长度

typedefstruct{//定义线性表结构体

intdata[MAXSIZE];//线性表存储元素的数组