1、顺序表的结构体定义
typedef struct
{
int data[maxSize]; //存放顺序表元素的数组
int length; //存放顺序表的长度
}Sqlist; //顺序表类型的定义
2、顺序表的操作
(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; //没找到,返回-1,作为失败标记
}
(2)插入数据元素的算法
在第p个位置插入元素e
int insertElem(Sqlist &L,int p, int e) //L本身要发生改变,所以用引用型
{
int i;
if (p<0 || p>L.length || L.length==maxSize) //检查p是否合法
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)初始化顺序表的算法
只需将length设置为0,代码如下:
void initList(Sqlist &L)
{
L.length = 0;
}
(4)求指定位置元素的算法
用e返回L中p(0<=p<=length-1)位置上的元素,代码如下:
int getElem(Sqlist L,int p,int &e)
{
if (p<0 || p>L.length-1) //p值越界错误,返回0
return 0;
e = L.data[p];
return 1;
}