个人使用的模板
#pragma once
#define SIZE 100
#define ElemType int
#define OK 1
#define ERROR 0
typedef struct
{
ElemType *elem;
int length;
}SqList;
int InitList(SqList& L)
{
L.elem = new ElemType[SIZE];
if (!L.elem) return ERROR;
L.length = 0;
return OK;
}
void DestroyList(SqList& L)
{
if (L.elem) delete L.elem;
}
void ClearList(SqList& L)
{
L.length = 0;
}
int GetLength(SqList& L)
{
return L.length;
}
bool IsEmpty(SqList& L)
{
if (L.length == 0) return 1;
return 0;
}
int GetElem(SqList& L, int pos, ElemType& e)
{
if (pos<1 || pos>L.length) return ERROR;
e = L.elem[pos - 1];
return OK;
}
int LocateElem(SqList& L, ElemType e)
{
for (int i = 0; i < L.length; ++i)
if (L.elem[i] == e)
return i + 1;
return ERROR;
}
int InsertList(SqList& L, int pos, ElemType e)
{
if (pos<1 || pos>L.length + 1) return ERROR;
if (L.length == SIZE) return ERROR;
for (int i = L.length - 1; i >= pos - 1; --i)
L.elem[i + 1] = L.elem[i];
L.elem[pos - 1] = e;
L.length++;
return OK;
}
int DeleteList(SqList& L, int pos)
{
if (pos<1 || pos>L.length) return ERROR;
for (int i = pos - 1 + 1; i <= L.length - 1; ++i)
L.elem[i - 1] = L.elem[i];
L.length--;
return OK;
}