#include
#include
#include
#define maxsize 100//顺序表可能达到的长度
#define Status int
#define ElemType int
#define overflow -2
#define ok 1
#define error 0
typedef struct
{
ElemType *elem;//存储空间的基地址
int length;//当前长度
int listsize;//当前线性表的存储容量
}Sqlist;
int initlist(Sqlist &L)//初始化,构建空的线性表
{
L.elem=new ElemType[maxsize];//为顺序表分配数组空间
if(!L.elem)exit(overflow);//存储失败退出
L.length=0;//空表长度为0
L.listsize=maxsize;
return ok;
}
Status Listinsert(Sqlist &L,int i,ElemType e)//插入
{
if(i<1||i>L.length+1)return error; //判断i值是否合理
if(L.length ==maxsize)return error;
for(int j=L.length-1;j>=i-1;i--)//插入之后后面元素后移 ,i-1才是实际下标 //
{
L.elem [j+1]=L.elem[j];
}
L.elem[i-1]=e;//在下标i-1位置插入新的数据元素e
++L.length;//L的长度加1
return ok;
}
Status Listdelete(Sqlist &L,int i)//删除
{
if(i<1||i>L.length)return error;//断i值是否合理
for(int j=i;j<=L.length-1;j++)//插入之后后面元素前移
L.elem[j-1]=L.elem [j];
--L.length;
return ok;
}
int main()
{
Sqlist L;
initlist (L);
Listinsert(L,3,10);
Listdelete(L,4);
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)