#include <iostream>
using namespace std;
#define MASIZE 20
typedef int ElemType;
typedef struct
{
ElemType date[MASIZE];
int length;
}SqList;
void initSqList(SqList* l){
l->length=0;
}
int isFull(SqList list){
if(list.length==MASIZE)
return 1;
return 0;
}
int isEmpty(SqList list){
if(list.length==0)
return 1;
return 0;
}
void printSqList(SqList l){
if(l.length == 0)
cout<<"该线性表为空表,请先添加数据"<<endl;
for(int i=0;i<l.length;i++){
cout<<l.date[i]<<endl;
}
}
void insertSqlist(SqList* list,int i,ElemType e){
if(list->length==MASIZE){
cout<<"线性表满了"<<endl;
return ;
}
if(i<1||i>list->length+1){
cout<<"位置不合法"<<endl;
return ;
}
for(int j =list->length-1;j>=i-1;j--){
list->date[j+1] = list->date[j];
}
list->date[i-1]=e;
list->length++;
}
void deleteSqlist(SqList* list,int i,ElemType *e){
if(list->length==0){
cout<<"表空无数据"<<endl;
return ;
}
if(i<1||i>list->length){
cout<<"位置不合法"<<endl;
return ;
}
*e = list->date[i-1];
for(int j =i;j<list->length;j++){
list->date[j-1] = list->date[j];
}
list->length--;
}
void getSqlist(SqList* list,int i,ElemType *e){
if(list->length==0){
cout<<"表空无数据"<<endl;
return ;
}
if(i<1||i>list->length){
cout<<"位置不合法"<<endl;
return ;
}
*e = list->date[i-1];
}
int main(int argc, char** argv) {
SqList sqlist;
ElemType gete,dele;
initSqList(&sqlist);
printSqList(sqlist);
insertSqlist(&sqlist,1,1);
insertSqlist(&sqlist,2,2);
insertSqlist(&sqlist,3,3);
insertSqlist(&sqlist,4,4);
printSqList(sqlist);
getSqlist(&sqlist,4,&gete);
cout<<"取出的数据为:"<<gete<<endl;
deleteSqlist(&sqlist,4,&dele);
cout<<"删除的数据为:"<<dele<<endl;
printSqList(sqlist);
return 0;
}