1.1顺序表的结点结构
#define MAXSIZE 100
typedef struct sequen
{
int databuf[MAXSIZE];
int last; //最后一个数组成员下标
}sequenlist;
1.2操作:
1.2.1建立
void Establish(sequenlist *sequentest)
{
memset(sequentest->databuf,0,MAXSIZE);
sequentest->last=0;
}
1.2.2插入
int insert(sequenlist *sequentest, int i, int x) //在位置i处插入x
{
int j;
if(sequentest->last>=MAXSIZE-1)
{
return 0; // 空间已满,无法插入
}
else if(i<1||i>sequentest->last+2)
{
return 0; //非法位置 (i是从1开始 ,last是从0开始)
}
else
{
for(j=sequentest->last;j>i-1;j--)
{
sequentest->databuf[j+1]=sequentest->databuf[j]; //i位置右面的后移
}
sequentest->databuf[i-1]=x; //将x 插入到i位置
sequentest->last++; //最后位置+1
}
return 1;
}
1.2.3 删除
int Delete(sequenlist *sequentest, int i)
{
int j;
if(i<1||i>sequentest->last+1)
{
return 0; //非法位置 (i是从1开始 ,last是从0开始)
}
else
{
for(j=i-1;j<sequentest->last+1;j++)</sequentest->
{
sequentest->databuf[j]=sequentest->databuf[j+1]; //前移直接覆盖要删除的数据
}
sequentest->last--;
}
return 1;
}
顺序表特点:1.占用空间连续
2.顺序表的插入和删除需要移动大量数据,故不适合需要多次插入删除操作的数据
文章评论(0条评论)
登录后参与讨论