线性表
上一个博文大概的介绍了线性表概念以及相关操作。本文主要介绍最简单的线性表结构——顺序表。
线性表的顺序存储结构_顺序表
顺序存储:采用顺序存储结构的线性表简称顺序表(sequential list)。顺序表以计算机内存储位置表示数据元素间的逻辑次序关系,表中相邻的元素,逻辑关系上相邻的元素在物理位置上也相邻。因此通常可以用数组来存储顺序表。顺序表的C++语言描述如下:
const int ListInitSize = ...;//顺序表默认存储空间大小
const int ListInc = ...;//顺序表存储空间分配增量
/* struct 结构体类型存储顺序表 */
typedef int ElemType;//这里元素类型默认为 int型
struct SList
{
ElemType *elem;//元素
int length,listsize;//元素数量以及顺序表长度
};
顺序表一些基本的操作以及C语言实现:
1.线性表初始化操作
bool ListInit(SList &L)
{
L.elem = new ElemType[ListInitSize];
if(!L.elem) return false;
L.length = 0;
L.listsize = ListInitSize;
return true;
}
2.创建线性表,添加若干元素
bool ListCreate(SList &L,int n,ElemType a[])
{
//这里把数组a[]中的元素添加到顺序表,数组大小为n
L.elem = new ElemType[n+ListInitSize];//扩容
if(!L.elem) return false;//扩容失败
L.length = n;//顺组表元素数量
L.listsize = n + ListInitSize;//顺组表总长度
for(int i = 0;i < n;i ++)//添加元素
L.elem[i] = a[i];
return true;//一切正常,说明添加成功
}
3.顺序表遍历操作
void ListTraverse(SList L)
{
for(