线性表的顺序存储结构

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

线性表的顺序存储结构代码

#define MAXSIZE 20     /*存储空间初始分配量*/

typeded int ElemType ;  /*ElemType类型根据实际情况而定,这里假设为int */

typedef struct

{

  ElemType data[MAXSIZE];  /*数组存储数据元素,最大值为MAXSIZE*/

  int length;                            /*线性表当前长度*/

}SqList;

这里,我们就发现描述顺序存储结构需要三个属性:

存储空间的起始位置:数组data,它的存储位置就是存储空间的存储位置

线性表的最大存储容量:数组长度MaxSiz。

线性表的当前长度:length。

 数据长度与线性表长度的区别

数组的长度是存放线性表的存储空间的长度,存储分配后这个量一般是不变的

线性表的长度是线性表中数据元素的个数,随着线性表插入和删除操作的进行,这个量是变化的。

在任意时刻,线性表的长度应该都小于等于数组的长度。

线性表顺序存储结构的优缺点

优点:无须为表示表中元素之间的逻辑关系而增加额外的存储空间,可以快速的存取表中任一位置的元素

缺点:插入和删除操作需要移动大量元素,当线性表长度变化较大时,难以确定存储空间的容量,造成存储空间的碎片

/*线性表的单链表存储结构*/

typedef struct Node

{

  ElemType data;

  struct Node *next;

}Node;

typedef struct Node *LinkList;     /*  定义LinkList  */

结点由存放数据元素的数据域和存放后继结点地址的指针域组成。

原文地址:https://www.cnblogs.com/123talents/p/7497197.html