线性表—顺序存储结构-顺序表

把线性表中的所有元素按照其逻辑顺序依次存储到从计算机存储器中指定存储位置开始的一块连续的存储空间中。线性表—顺序存储结构-顺序表_第1张图片
一般分配空间是需要一些冗余的。
专门开辟一块空间线性表有n个数据
占用空间:n*sizeof(ElemType)
区分线性表和顺序表
线性表是逻辑结构,顺序表是存储结构,是指元素在内存里存储空间是连续的。
顺序表存储类型

define MaxSize 50

typedef struct
{
ElemType data[MaxSize];
int length;
} SqList;
线性表—顺序存储结构-顺序表_第2张图片
注意:我们的数组是有下标的,我们可以由下标确定存储空间大小,作为连续存储的数组,我们知道首地址,就可以确定其他位置。在顺序表中的存储可以达到由逻辑记号计算出物理位置。
注意逻辑位序和物理位序的不同。

define MaxSize 50

typedef struct city
{
char code[4];
char name[10];
char describe[16];
} ElemType;
typedef struct
{
ElemType data[MaxSize];
int length;
} SqList;
线性表—顺序存储结构-顺序表_第3张图片
实际应用的处理。
我们可以拿指针指向他也可以代表一个结构体的变量。
有了这样一个结构,我们就需要考虑如何在这样一个顺序存储结构下实现以下运算。
(1)初始化线性表InitList(&L)
(2)销毁线性表DestroyList(&L)
(3)判线性表是否为空表ListEmpty(L)
(4)求线性表的长度ListLength(L)
(5)输出线性表DispList(L)
(6)求线性表L中指定位置的某个数据元素GetElem(L,i,&e)
(7)查找元素LocateElem(L,e)
(8)插入元素ListInsert(&L, i, &e)
(9)删除元素ListDelete(&L, i, &e)

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