数据结构算法代码实现——线性表的定义(一)

线性表的定义

线性表:是最常用且最简单的一种数据结构,它是一种线性数据结构,是由类型相同的n个(n≥0)数据元素组成的有序序列。
线性表的特点:有且只有一个被称作“第一个”的数据元素,有且只有一个被称为“最后一个”的数据元素。除第一个数据元素之外,
其他元素都只有一个前驱,除最后一个数据元素之外,其他元素都只有一个后继。简单的说,其特点是数据元素之间存在”一一对应 (序偶关系)“
的关系。
好,现在举个例子:比如英文字母表(A,B,C,D…Y,Z),可以看出除了A和Z字母之外,其他字母的前后都各有一个字母,A是B的前驱,C是B的后继。
即属于同一数据对象。

线性表的形式定义

数据结构的形式定义为:数据结构是一个二元组Data Structure=(D,S)。其中:D是数据元素的有限集,S是D上关系的有限集。
所以线性表也可以用二元组的形式定义:
        List = (D,R)
        D =(ai | 1≤i≤n,n≥0)
        R ={ | ai,ai+1∈D,1≤i≤n-1}
其中,关系是一个序偶关系,表示线性表中数据元素的相邻关系。
举例:使用二元组的方式表示上述字母表
        List = (D,R)
        D = {A,B,C,D…Y,Z}
        R = {,,,……,,}

线性表的抽象数据类型(ADT)

抽象数据类型可以用三元组的形式表示(D,S,P),其中,D是数据对象,S是D上的关系集,P是对D的基本操作集。也可以记为:
数据结构+基本操作【DSP】。
有关线性表详细的ADT,请参考严蔚敏数据结构第19页。在下一篇,我们会用C语言来编程实现所有的基本操作。

线性表的表示与实现(D,S)

数据元素之间的关系在计算机中有两种不同的表示方法:顺序映像和非顺序映像。进而会得到两种不同的存储结构:
顺序存储结构和链式存储结构。(物理(存储)结构)。
线性表是一种线性结构(逻辑结构),属于4大基本逻辑结构之一。所以,逻辑结构在用计算机表示存储时即会有两种方式:顺序存储结构和链式存储结构。

线性表的基本操作(P)

表在我们生活中,就是用来存放数据的。数据的来源可以是书上、电视上的信息。线性表也是如此,使用计算机在内部存储一样表,数据的来源可以
是数据库等等。
那么,我们为什么要用表来保存这些数据那,就是为了我们以后更方便的查找数据,并且表中的数据也不会是一成不变的。
好,举个例子:比如说一辆火车,每节火车会有编号,如果有破的车厢还需要卸载或更换新的车厢。因此,我们要编写一些函数来实现这类操作。
线性表在计算机存储中有两种方式,所以不同方式的存储基本操作也会不同。各有优缺点,所以,我们要根据具体的情况来使用不同的方式。

下面几篇文章,我们会讨论线性表的不同存储方式,以及基本操作的C语言代码实现。

你可能感兴趣的:(数据结构和算法(初级))