线性表是对顺序表、队列和栈的综合称呼,顺序表的本质就是数组。
线性表(Linear List):
- 数据元素之间一个挨着一个
- 具有相同特性数据元素的有限序列
线性表?顺序表?:
- 线性表是一种逻辑结构,表示元素之间一对一的相邻关系。
- 顺序表和链表是指存储结构!!
- 也即线性表表明数据之间的逻辑结构是线性的;顺序表和链表表明数据的存储结构是顺序的;
顺序表的本质就是:数组!顺序表等价于数组!
理解顺序存储结构:
- 是四大存储结构中的一种(顺序存储、链式存储、索引存储、散列存储);
- 大佬的定义:把逻辑上相邻的结点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。
- 菜鸟的理解:具有线性关系的数据、按照前后的次序、全部存储在一整块连续的内存空间中,即用一组地址连续的存储单元、依次存储线性表的各个数据元素
如果一个数组为”a[10]={11,12,13,14,15,16,17,18,19.20}”。存储的是int型数据,所以该数组是int型数组,所以k的值为int型数据的宽度(即为4字节)。
顺序存储的特性:
- 第一个元素所在的地址就是这块存储空间的首地址。通过首地址,可以轻松访问到存储的所有的数据。
- 可实现对结点的随机存取,即每一个结点对应一个序号,由该序号可以直接计算出来结点的存储地址。
顺序表的定义:
#define SIZE 100 //存储空间初始分配量
typedef struct Sqlist
{
int element[SIZE]; //数组存储数据元素,最大长度为SIZE
int current; //线性表当前长度
}Sqlist, * PSqlist;
注:在编程开发中,直接使用的是数组,几乎不用线性表。所以我们直接用数组来代替它。
#include <stdio.h>
#define SIZE 10
int main()
{
int a[SIZE];
...
return 0;
}