下面介绍顺序表的基本操作,如果有错请多多指教!!
struct SqLsit
{
elemType *elem;
//储存空间基址(elemType表示你要的基址的类型比如int、char)
int lenght;//当前长度
int maxSize;//最大长度
};
bool initList(SqLsit &L, int sz)//初始化一个顺序表
{
if(sz<0){return false ;}
L.elem=(elemType *)malloc(sizeof(elemTyoe));
L.maxSize=sz;
L.lenght=0;
return true;
}
bool insert(SqList & L, int i, elemType &s)
{ //i表示顺序表中的第i个元素
if(i<1 || L.lenght+1 ){return false;}
elemType *p=L.elem+L.lengt-1;//表尾
elemType *q=L.elem+i-1;//第i个元素
for(; p>=q; p--){*(p+1)=*p;}//每一个元素向后挪
*q=s;//在第i个位插入元素
L.lenght++;
return true;
}
bool Delete(SqLsit &L, int i)
{//
删除第i个元素
if(i<1 || i>L.lenght){return false ;}
elemType *p=L.elem+i-1;//第i个元素
elemType *q=L.elem+i;//第i+1个元素
for(; q<L.elem+L.lenght-1; ){*(p++)=*(q++)}//每一个向前挪
L.lenght--;
return true;
}
3059

被折叠的 条评论
为什么被折叠?



