实现顺序表的曾删查操作
元素结构体:
<pre name="code" class="cpp">#define MAXSIZE 100 //线性表的最大长度
typedef int ElemType; //ElemType为线性表元素的类型
typedef struct
{
ElemType vec[MAXSIZE];
int len; //顺序表的长度
}SequenList;
插入操作:
<pre name="code" class="cpp">bool InsertInSeqlist(SequenList *L,int i,ElemType x)
{
int j;
if(L->len>=MAXSIZE)
{
printf("线性表溢出!\n");
return false;
}
if(i<1 || i>L->len+1)
{
printf("插入位置错误!\n");
return false;
}
for(j=L->len-1;j>=i-1;j--)
L->vec[j+1]=L->vec[j]; //元素后移
L->vec[i-1]=x; //插入元素x
L->len++; //表的长度加一
return true;
}
删除操作:
bool DeleteFromSeqlist(SequenList *L,int i)
{
if(i<1 || i>L->len)
return false;
L->len--;
i--;
while(i<L->len)
{
L->vec[i]=L->vec[i+1]; //元素前移
i++;
}
return true;
}
查找操作:
int FindInSeqlist(SequenList *L,ElemType x)
{
int pos;
for(pos=0;pos<L->len;pos++)
if(L->vec[pos]==x)
break;
return pos==L->len?0:pos+1;
}