
#include<iostream>
using namespace std;
#define MAX_SIZE 50
//顺序表的一系列操作
typedef struct
{
int data[MAX_SIZE];
int length;
}SqList;
void CreatList(SqList *& list, int a[], int n)
{
list = (SqList*)malloc(n * sizeof(int));
int k = 0;
for (int i = 0; i < n; i++)
{
list->data[k] = a[i];
k++;
}
list->length = n;
}
void initList(SqList*& list)
{
list = (SqList*)malloc(sizeof(SqList));
list->length = 0;
}
void DestoryList(SqList*& list)
{
free(list);
}
bool ListEmpty(SqList*& list)
{
return (list->length == 0);
}
int ListLength(SqList*& list)
{
return list->length;
}
void DisplayList(SqList*& list)
{
for (int i = 0; i < list->length; i++)
cout << list->data[i] << " ";
cout << endl;
}
bool GetElem(SqList*& list,int i,int& e)
{
if (i<1 || i>list->length)
return false;
e = list->data[i - 1];
return true;
}
int LocateElem(SqList*& list, int e)
{
int i = 0;
while (i < list->length && list->data[i] != e)
i++;
if (i < list->length)
return i + 1;
else
return 0;
}
bool insertList(SqList*& list, int i,int e)
{
if (i<1 || i>list->length)
return false;
i--;
for (int k = list->length; k > i; k--)
{
list->data[k] = list->data[k-1];
}
list->data[i] = e;
list->length++;
return true;
}
bool ListDelete(SqList*& list, int i, int e)
{
if (i<1 || i>list->length)
return false;
i--;
for (int k = i; k<list->length-1; k++)
{
list->data[k] = list->data[k + 1];
}
list->length--;
return true;
}