您的位置:首页 > 其它

线性表线性(顺序)存储结构

2015-03-02 16:02 288 查看
实现顺序表的曾删查操作

元素结构体:

<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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: