数据结构【第3章】——线性表

线性表的定义

线性表:零个或多个数据元素的有限序列。

1)线性表是一个序列。即元素之间是有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有且只有一个前驱和后继。

2)线性表强调是有限的,元素个数也是有限的。事实上,在计算机中处理的对象都是有限的,那么无限的数列,只存在于数学的概念中。

数据结构【第3章】——线性表_第1张图片
注意:位序是从1开始的

在较复杂的线性表中一个数据元素可以由若干个数据项组成。

线性表的抽象数据类型

数据结构【第3章】——线性表_第2张图片

注:
当你传递一个参数给函数的时候,这个参数是否在函数内被改动决定了使用什么参数形式。
1)如果需要被改动,则需要传递指向这个参数的指针。
2)如果不用被改动,可以会直接传递这个参数。

线性表的顺序存储结构

线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。

线性表的每个数据元素的类型都相同,可以使用C语言的一维数组来实现顺序存储结构

随着数据的插入,线性表的长度开始变大,不过线性表的当前长度不能超过存储容量,即数组的长度。

线性表顺序存储结构代码

#define MAXSIZE 20          /* 存储空间初始分配量 */
typedef int ElemType;       /* ElemType类型根据实际情况而定,这里假设为int */
typedef struct
{
    ElemType data[MAXSIZE]; /* 数组,存储数据元素 */
    int length;             /* 线性表当前长度 */
}SqList;

顺序存储结构需要3个属性:
1:存储空间的起始位置:数组data,它的存储位置就是存储空间的存储位置。
2:线性表的最大存储容量:数组长度MAXSIZE。
3:线性表的当前长度:length。

注1:区别数组长度和线性表长度
线性表的长度是线性表中数据元素的个数,随着线性表插入和删除操作的进行,这个量是变化的。
线性表的长度<=数组的长度。

注2:线性表的第i个元素是要存储在数组下标为i-1的位置上
数据结构【第3章】——线性表_第3张图片
存储器中的每个存储单元都有自己的编号,这个编号称为地址。

你可能感兴趣的:(#,数据结构,数据结构)