顺序表的储存结构
(1)当采用像c语言这样的高级程序设计语言描述数据结构问题时,实现顺序存储结构的方法是使用数组。
(2)数组有静态数组和动态数组两种。静态数组存储空间的申请和释放由系统自动完成,动态数组存储空间的申请和释放由用户通过调用系统函数自己完成。无论静态数组还是动态数组,其功能都是向系统申请一块地址连续的有限空间,只是申请空间的方法不一样。
顺序表操作的实现:
(1)定义结构体SeqList
为了用c语言描述如上图所示的顺序表,定义结构体SeqList如下
typedef struct
{
DataType List[MaxSize];
int size;
}SeqList;
其中,DataType为数组元素(即数据元素)的数据类型,MaxSize表示数组元素的最大个数,List表示顺序表的数组成员,size表示顺序表中当前存储的数据元素个数成员,且必须满足size<=MaxSize.
(2)初始化ListInitiate(L)
//初始化ListInitiate(L)
void ListInitiate (SeqList *L)//初始化顺序表L
{
L->size=0;//定义初始化数据元素个数
}
*由于函数中要改变参数L的size域的值,因此参数L应设计为输出型参数,即参数L设计为SeqList的指针类型,否则,size域的修改值将不能带回去。
(3)求当前数据元素个数ListLength(L)
int ListLength(SeqList L)//返回当前数据元素个数
{
return L.size;
}
(4)插入数据元素ListInsert(L,i,x)
//插入数据元素
int ListInsert(SeqList *L,i,DataType x)//在第i个位置插入数据元素x
{
int j=0;
if(L