//~list.h
//:線性表的構造 成員是int型,包含insert(int position,int value),delete(int posion),find(int value),
//clear(),getElem(),getlength() initlist(*L)
#include<stdio.h>
#define MAXSIZE 20
typedef int ElemType;
#define OK 0
#define ERROR -1
#define TRUE 1
#define FAISE 0
typedef struct
{
ElemType data[MAXSIZE];
int length;
}List;
int initlist(List L)
{
//L.data[MAXSIZE]
L.length=0;
return OK;
}
int GetElem(List L,int i,ElemType *e)
{
if(L.length==0 || i<0 || i>L.length-1)
return ERROR;
*e = L.data[i];
return OK;
}
int InsertList(List *L,int i,ElemType e)
{
int k;
if(L->length==MAXSIZE)
return ERROR;
if(i<0 || i>L->length)
return ERROR;
for (k=L->length;k>=i;k--)
{
L->data[k]=L->data[k-1];
}
L->data[i]=e;
L->length++;
return OK;
}
int PrintList(List L)
{
int i;
if (L.length==0)
{
printf("List is EMPTY\n");
}
else
{
for (i=0;i<L.length;i++)
{
printf("%d ",L.data[i]);
}
}
return OK;
}
int DeleteElem(List *L,int i,ElemType *e)
{
int k;
if(L->length==0)
{
return ERROR;
}
if(i<0 || i>L->length-1)
{
return ERROR;
}
{
*e=L->data[i];
for (k=i;k<L->length;k++)
{
L->data[k]=L->data[k+1];
}
L->length--;
return OK;
}
}
//:list.cpp
#include "list.h"
List list;
int main()
{
List *list1=&list;
int *e;
initlist(list);
InsertList(list1,0,10);
InsertList(list1,1,20);
DeleteElem(list1,0,e);
PrintList(list);
}