1.按元素值的查找算法
在顺序表中查找第一个值等于e的元素,并返回其下标,代码如下:
int findElem (Sqlist L, int e)
{
int i;
for (i=0; i<L.length; ++i)
if (e==L.data[i])
return i;
return -1;
}
2.插入数据元素的算法
在顺序表L的第p(0<=p<=length)个位置上插入新的元素e。如果p的输入不正确,则返回0,代表插入失败;如果p的输入正确,则将顺序表第p个元素及以后的元素右移一个位置,腾出一个空位置插入新元素,顺序表长度增加1,插入操作成功,返回1:
int insertElem(Sqlist &L, int p, int e) //L本身要发生改变,所以用引用型
{
int i;
if (p<0 || p>L.length || L.length==maxSize) //位置错误或者表长已经达到
return 0;
for (i=L.length-1; i>=p; --i)
L.data[i+1]=L.data[i]; //从后往前,逐个将元素往后移动一个位置
L.data[p]=e; //将e放在插入位置p上
++(L.length); //表长自增1
return 1;
}
3.删除数据元素的算法
要删除表中下表为p的元素,只需将其后边的元素逐个往前移动一个位置,将p位置上的元素覆盖掉,就达到了删除的目的:
int deleteElem(Sqlist &L, int p, int &e) //需要改变的变量用引用型
{
int i;
if (p<0 || p>L.length-1) //位置错误或者表长已经达到
return 0;
e=L.data[p]; //将被删除的元素赋值给e
for (i=p; i<L.length-1; ++i)
L.data[i]=L.data[i+1];
--(L.length); //表长减1
return 1;
}
4.初始化顺序表的算法
只需将length设置为0:
void initList (Sqlist &L)
{
L.length=0;
}
5.求指定位置元素的算法
用e返回L中p(0<=p<=length-1)位置上的元素:
int getElem(Sqlist L, int p, int &e) //需要改变的变量用引用型
{
if (p<0 || p>L.length-1) //p值越界错误
return 0;
e=L.data[p];
return 1;
}