线性表是由同一类型的数据元素构成的有序序列的线性结构, 线性表中元素的个数称为线性表的长度。线性表中元素的前一个元素叫做当前元素的直接前驱;后一个元素叫做当前元素的直接后继。
线性表的顺序储存
线性表的顺序存储指的是内存中使用地址连续的一块存储空间顺序存放线性表的各元素。一般利用一维数组来表示顺序存储的数据区域,同时需要用一个Last变量来记录当前线性表中最后一个元素在数组中的位置,所以通常将数组变量Data和变量Last封装成一个数据结构作为顺序表的类型。
typedef int Position;
/*position是数组的整数下标,从0开始,前面提到的位序是从1开始。*/
typedef struct LNode *PtrToLNode;
struct LNode{
ElementType Data[MAXSIZE];
Position Last;
};
typedef PtrToLNode List;
/*可以利用List定义线性表*/
/*线性表长度可以通过L->Last+1得到*/
初始化
List MakeEmpty()
{
List L;
L = (List)malloc(sizeof(struct LNode));
L->Last = -1;
return L;
}
查找
查找与给定值相同的数据元素
#define ERROR -1
Position Find(List L, ElementType X)
{
Position i = 0