#include <stdio.h>
#define MaxSize 10 //定义最大长度
typedef struct{
int data[MaxSize];//用静态的数组存放数据元素
int length;//
}SqList;//顺序表的类型定义
//初始化一个顺序表
void InitList(SqList &L)
{
for(int i=0;i<MaxSize;i++)
L.data[i]=0;//将所有数据元素设为默认初始值
L.length=0;
}
//插入操作
bool ListInsert (SqList &L,int i,int e)//i是插入位置,e是插入元素
{
if(i<1 || i>L.length+1)
return false;
if(L.length >=MaxSize)//当前存储空间已满,不能插入
return false;
for(int j=L.length;j>=i;j--)//将第i个元素及之后的元素后移
L.data[j]=L.data[j-1];
L.data[i-1]=e;//在i位置处放入e
L.length++;
return true;
}
//删除操作
bool ListDelete (SqList &L, int i, int &e)
{
if(i<1 || i>L.length+1)
return false;
e=L.data[i-1];
for(int j=i;j<L.length;j++)//将第i个元素及之后的元素前移
L.data[j-1]=L.data[j];
L.length--;
return true;
}
int main(int argc, char *argv[]) {
SqList L;//声明一个顺序表
InitList(L);//初始化顺序表
//插入元素
ListInsert(L,1,3);
ListInsert(L,1,4);
ListInsert(L,1,5);
for(int i=0;i<L.length;i++)
printf("data[%d]=%d\n",i,l.data[i]);
int e=-1;
if(ListDelete(L,3,e))
printf("已删除第三个元素,删除元素值为=%d\n",e);
else
printf("为序i不合法,删除失败");
for(int i=0; i<L.length;i++)
printf("data[%d]=%d\n",i,L.data[i]);
return 0;
}