1. 线性表定义
线性表是一种内部数据类型相同、数据个数有限的数据结构。线性表的长度指的是线性表中元素的个数,如果线性表的长度为0时,则称其为空表。在非空表中的每个数据元素都有一个确定的位置,其中i为数据元素ai的位序。
2. 线性表的顺序表示和实现
线性表的顺序表示指的是用一组地址连续的存储单元依次存储连续线性表的数据元素。
通常情况下,采用数组来描述数据结构中的顺序存储结构。但由于线性表的长度可变,且所需最大存储空间随问题不同而不同,因此在C语言中,可用动态分配的一维数组来进行描述。
//--------------------线性表的动态分配顺序存储结构--------------------------
# define LIST_INIT_SIZE 100 // 线性表存储空间的初始分配量
# define LISTINCREMENT 10 // 线性表存储空间的分配增量
typedef struct{
ElemType *elem; // 存储空间基地址
int length; // 当前长度
int listsize; // 当前分配的存储容量(以sizeof(ElemType)为单位)
}SqList;
// ------------------------------初始化操作---------------------------------------
Status InitList_sq(SqList &L){
// 构造一个空的线性表L
L.elem = (ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType));
if(!L.elem) exit(OVERFLOW); // 存储分配失败
L.length = 0; // 空表长度为0
L.listsize = LIST_INIT_SIZE; // 初始存储容量
return OK;
}
原文地址:http://blog.51cto.com/10741210/2106679