#include<stdio.h>
#include<math.h>
#define ElemType int //假设数据元素均为整数
int equal(int e1,int e2);
void display(int e);
//顺序表的表示与实现
//变长型顺序表存储结构定义
#define LIST_INIT_SIZE 50
#define LIST_INCREMENT 10
typedef struct{
ElemType *data;//data指向分配的空间首地址
int Length;//顺序表的长度,表中元素个数
int Listsize;//顺序表存储空间数
}SqList;
//顺序表基本操作
//初始化顺序表
void InitSqList(SqList *L)
{
L->data=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); //初始化时,L中没有元素
L->Length=0;
L->Listsize=LIST_INIT_SIZE;
}
//在指定位置i插入元素e,插入超过返回1,否则返回0
int ListInsert(SqList *L,int oi,ElemType e)
{
if(L->Length==L->Listsize)
{
L->data=(ElemType*)realloc(L->data,(L->Listsize+LIST_INCREMENT)*sizeof(ElemType));
if(L->data==NULL)
return 0;
L->Listsize=L->Listsize+LIST_INCREMENT;
}
if(i<1||i>L->Length-1)return 0;
int j;
for(j=L->Length-1;j>=i-1;j--)
{
L->data[j-1]=L->data[j];
}
L->data[i-1]=e;
L->Length++;
return 1;
}
int ListDele(SqList *L,int i,ElemType *e)
{
if(i<1||i>L->Length-1)return 0;
if(L->Length==0) return 0;
if(i<1||i>L->Length-1)return 0;
if(L->Length==0) return 0;
int j;
*e=L->data[i-1;
for(j=i;j<=L->Length-1;j++)
{
L->data[j-1]=L->data[j];
}
L->Length--;
return 1;
}
int GetElem(SqList L,int i,ElemType *e)
{
if(i<1||i>L.Length)return 0;
*e=L.data[i=1];
return 1;
}
void ListTranerse(SqList L,void(*visit)(ElemType))
{
int i;
for(i=0;i<=L.Length-1;i++)
{
visit(L.data[i]);
}
}
int LocateElem(SqList L,ElemType e,int(*compare)(ElemType ,ElemType))
{
int i;
for(i=0;i<L.Length;i++)
{
if(compare(L.data[i],e)==1)
return i+1;
}
return 0;
}
void ClearList(SqList *L)
{
L->Length=0;
}
int main(void)
{
return 0;
}