#include<stdio.h>
#include<stdlib.h>
Typedef int ElemenType;
List MakeEmpty()
{
    List PtrL;
    PtrL = (List)malloc(sizeof(struct LNode));
    Ptrl->Last = -1;
    return PtrL;
} 
int Find(ElemenType X,List PtrL)//查找X 
{
    int i = 0;
    while(i<PtrL->Last&&PtrL->Data[i]!=X)
        i++;
    if(i>PtrL->Last)
        return -1;
    else
        return i;
}
void Insert(ElemenType X,int i,List PtrL)
{
    int j;
    if(PtrL->Last == MAXSIZE-1)//检查表是否满了 
    {
        printf("表满");
        return;
    }
    if(i<1||i>Ptrl->Last+2)//检查位置 
    {
        printf("位置不合法");
        return;
    }
    for(j=PtrL->last;j>=i-1;j--)//平均移动次数为n/2,平均时间性能为O(n) 
    {
        PtrL->Data[j+1]=PtrL->Data[j];//向后移动 
        PtrL->Data[i-1]=X;//插入新元素 
        PtrL->Last++;//Last指向最后元素 
        return;
    }
}
void Delete(int i,List PtrL)//平均移动次数为(n-1)/2,平均时间性能为O(n) 
{
    int j;
    if(i<1||i>PtrL->Last+1)//检查是否空表 
    {
        printf("不存在第%d个元素",i);
        return;
    }
    for(j=i;j<=PtrL->Last;j++)
    {
        PtrL->Data[j]=Ptrl->Data[j+1];//向前移动 
        PtrL->Last--;//Last指向最后元素 
        return;
    }
}

插入和删除,移动方式是相反的。