#include <iostream>
#include <stdlib.h>
using namespace std;
#define MAXSIZE 100
typedef int ElemType;
//定义数据结构
typedef struct
{
ElemType *elem;
int length;
} SqList;
int InitList_Sq(SqList &L)
{
L.elem = new int[MAXSIZE];
if(!L.elem)
exit(-1);
L.length = 0;
return 1;
}
void DestroyList(SqList &L)
{
if(L.elem)
delete[] L.elem;
}
void ClearList(SqList &L)
{
L.length = 0;
}
int GetLength(SqList &L)
{
return L.length;
}
int IsEmpty(SqList L)
{
if(L.length == 0)
return 1;
else
return 0;
}
int GetElem(SqList L,int i,int *e)
{
if(i < 1 || i > L.length)
return -1;
*e = L.elem[i-1];
return 1;
}
int LocateElem(SqList L, int e)
{
for(int i = 0; i < L.length; i++)
{
if(L.elem[i] == e)
return i + 1;
}
return 0;
}
int InsertElem(SqList &L,int e,int n)
{
if(n < 1 || n > L.length + 1)
return -1;
if(L.length == MAXSIZE)
return -1;
for(int i = L.length - 1; i >= n - 1; i--)
{
L.elem[i+1] = L.elem[i];
}
L.elem[n-1] = e;
L.length++;
return 1;
}
int DeleteElem(SqList &L,int i)
{
if(i < 1 || i > L.length)
return -1;
for(int j = i - 1;j < L.length-1;j++){
L.elem[j] = L.elem[j+1];
}
L.length--;
return 1;
}
void Traversal(SqList L)
{
for(int i = 0; i < L.length; i++)
{
cout << L.elem[i] << " ";
}
cout << endl;
}
int main()
{
SqList L;
//初始化表
InitList_Sq(L);
for(int i = 0; i < 5; i++)
{
InsertElem(L,i+1,i+1);
}
Traversal(L);
DeleteElem(L,2);
Traversal(L);
int *e = new int;
GetElem(L,2,e);
cout << "第二个元素为" <<*e << endl;
int a = 0;
a = LocateElem(L,4);
cout << "元素4在位置" << a;
return 0;
}