建立顺序表代码如下:
由数组元素a[0..n-1]创建顺序表L。将a中的每个元素依次放入顺序表中,并将n赋值给顺序表的长度域。算法为:
void CreateList(SqList * &L, ElemType a[], int n){
int i=0, k=0;
L = (SqList *)malloc(sizeof(SqList)); //分配存储线性表的空间
while(i<n){
L->data[k] = a[i];
k++; i++;
}
L->length = k; //设置线性表的实际长度,设置为k(即a的长度n)
}
扩展资料
线性表的特点:
1、对于同一个线性表,其每一个数据元素的值虽然不同,但必须具有相同的数据类型;
2、数据元素之间具有一种线性的或“一对一”的逻辑关系。
3、第一个数据元素没有前驱,这个数据元素被称为开始节点;
4、最后一个数据元素没有后继,这个数据元素被称为终端节点;
5、除了第一个和最后一个数据元素外,其他数据元素有且仅有一个前驱和一个后继。
线性表的抽象数据类型描述
基本操作如下:
1、线性表的置空操作clear():将一个已经存在的线性表置为空表。
2、线性表判空操作isEmpty():判断线性表是否为空,若为空,则返回true;否则,返回为false。
3、求线性表的长度操作length():求线性表中的数据元素的个数并返回其值。
typedef struct {
int arr[MAX];//用的数组
int length;
} ArrayList;//线性表
void InitList(ArrayList *L);
void DestroyList(ArrayList *L);
int *GetElem(ArrayList *L, int i);
int ListInsert(ArrayList *L, int i, int e);
int ListDelete(ArrayList *L, int i);