#include<iostream>
#include<fstream>
#include<string>
#include<cstring>
#include<iomanip>
#define MAXSIZE 100
#define OK 1
#define ERROR 0
#define OVERFLOW -2
using namespace std;
typedef int ElemType;//定义元素类型
typedef int Status;
typedef struct{
ElemType *elem;//存储空间基地址
int length;//当前项的个数
}SqList;//数序存储结构类型为SqList
Status InitList(SqList &L);//初始化
Status Input(SqList &L,int n);//输入元素
Status Output(SqList L);//输出元素
Status GetElem(SqList L,int i,ElemType &e);//得到第i个元素的值,并存到e中
int Locate(SqList L,ElemType e);//查找e的数据元素,并返回其序号
Status ListInsert(SqList &L,int i,ElemType e);//在第i个位置插入新的元素e
Status ListDelete(SqList &L,int i);//删除第i个元素
int main(){
SqList L;
InitList(L);
int n;cin>>n;
Input(L,n);
/*int i;cin>>i;
ElemType e;
GetElem(L,i,e);
cout<<e;*/
/*ElemType e;cin>>e;
int x=Locate(L,e);
if(x)
cout<<x;
else
cout<<"未找到";*/
/*int i;cin>>i;
ElemType e;cin>>e;
ListInsert(L,i,e);*/
/*int i;cin>>i;
ListDelete(L,i);*/
Output(L);
return 0;
}
Status InitList(SqList &L)//初始化
{
L.elem=new ElemType[MAXSIZE];//分配一个大小为MAXSIZE的数组空间
if(!L.elem) exit(OVERFLOW);//储存分配失败退出
L.length=0;//空表长度为0
return OK;
}
Status Input(SqList &L,int n)//输入元素
{
for(int i=0;i<n;i++)
{
cin>>L.elem[i];
L.length++;
}
return OK;
}
Status Output(SqList L)//输出元素
{
for(int i=0;i<L.length;i++)
cout<<L.elem[i]<<" ";
return OK;
}
Status GetElem(SqList L,int i,ElemType &e)//得到第i个元素的值,并存到e中
{
e=L.elem[i-1];
}
int Locate(SqList L,ElemType e)//查找e的数据元素,并返回其序号
{
for(int i=0;;i++)
{
if(L.elem[i]==e)//查找成功
return i+1;
}
return 0;//查找失败
}
Status ListInsert(SqList &L,int i,ElemType e)//在第i个位置插入新的元素e
{
if((i<1)||(i>L.length))// 1<=i<=L.length
return ERROR; //i值不合法
if(L.length==MAXSIZE)
return ERROR;//当前存储空间已满
for(int j=L.length;j>=i;j--)//将元素后移
L.elem[j]=L.elem[j-1];
L.elem[i-1]=e;
L.length++;//长度加1
return OK;
}
Status ListDelete(SqList &L,int i)//删除第i个元素
{
if((i<1)||(i>L.length))// 1<=i<=L.length
return ERROR; //i值不合法
for(int j=i-1;j<L.length;j++)//将元素前移
L.elem[j]=L.elem[j+1];
L.length--;//长度减1
return OK;
}