//数组的线性表
include "stdio.h"
define MAXSIZE 100
define ElementType int
typedef struct {
ElementType Date[MAXSIZE];
int Last; //最后一个元素
}List;
List L, *Ptrl;
//顺序存储。
//初始化,创建新表
List *MakeEmpty(void)
{
List *Ptrl;
Ptrl = (List)malloc( sizeof(List) );
Ptrl -> Last = -1;
return Ptrl;
}
//查找
int Find(ElementType x, List *Ptrl)
{
int i;
while(i < Ptrl -> Last && Ptrl -> Date[i] != x)
{
i++;
}
if(i > Ptrl -> Last)
return -1;
else
return i;
}
//插入 ,在现性表 i 位置插入 x
void Insert(ElementType x, List *Ptrl, int i)
{
int j;
if(Ptrl -> Last == MAXSIZE -1) //空间已满
{
return;
}
if(Ptrl -> Last + 2 ||i<1) //位置不对
{
return;
}
for(j = Ptrl -> Last; j >= i-1; j--)
{
Ptrl -> Date[j+1] = Ptrl -> Date[j];
}
Ptrl -> Date[i-1] = x;
Ptrl -> Last ++;
return ;
}
//删除 第i个元素
void Delete(List *Ptrl, int i)
{
int j;
if(i < 1 || i > Ptrl -> Last + 1) //位置合法性
{
return;
}
for(j = i; j <= Ptrl -> Last; j++)
{
Ptrl -> Date[j-1] = Ptrl -> Date[j];
}
Ptrl -> Last --;
return;
}
网友评论