2.2线性表的顺序表示和实现(2)
顺序表的插入和删除操作
预定义内容省略。。。
1.顺序表插入操作
注:关于realloc函数的使用参考
realloc() 用法详解 - xuefenhu - 博客园
在顺序线性表L中第i个位置之前插入新的元素e
Status ListInsert_Sq(SqList &L,int i,Elemtype e)
{
//i的合法值:1<=i<=ListLength_Sq(L)+1
//判断是否合法
if(i<1||i>ListLength_Sq(L)+1)
{
return ERROR;//i值不合法
}
if(L.length>=L.listsize) //当前分配空间已满,增加分配
{
newbase=(ElemType*)realloc(L.elem,L.listsize+LISTINCREMENT )*sizeof(ElemType);
if(!newbase)
{
exit(OVERFLOW);//存储分配失败 退出程序
}
L.elem=newbase;//新基址
L.listsize+=LISTINCREMENT;//增加存储容量
}
若L是Sq类型的顺序表,则表中第i个数据元素是L.elem[i-1]
开始插入