一、线性表
线性表(Linear List):由同种类型数据元素构成有序序列的线性结构。
- 表中元素个数称为线性表的长度。
- 线性表没有元素时,称为空表。
- 表起始位置称为表头,表结束位置称为表尾。
线性表的顺序存储的实现
可利用数组的连续储存空间顺序存放线性表的各元素。
typedef struct LNode *List;
struct LNode
{
ElementType Data[MAXSIZE];//MAXSIZE为数组的大小
int Last;//Last代表最后一个元素
};
struct LNode L;
List PtrL;//List表示线性表结构指针
访问下标为i的元素:L.Data[i]或PtrL->Data[i]
线性表的长度:L.Last或PtrL->Last+1
主要操作的实现:
- 初始化(建立空的顺序表)
List MakeEmpty()
{
List PtrL;
PtrL = (List)malloc(sizeof(struct LNode));
PtrL->Last = -1;//Last代表最后一个元素
return Ptrl;
}
- 查找
int Find(ElementType X, List PtrL)//线性表结构指针
{
int i=0;
while(i <= PtrL->Last && PtrL->Data[i] != X)
{
i++;
}
if(i > PtrL->Last)
{
return -1;//没有找到,返回-1
}
else
{
return i;//找到后返回的是储存位置
}
}
- 插入(第i(1<=i<=n+1)个位置上插入一个值为X的新元素)
void Insert(ElementType X, int i, List PtrL)
{
int j;
if