对于线性表的顺序存储结构来说,如果我们要实现GetElem操作,即将线性表L中的第i个位置元素值返回,其实是非常简单的。
就程序而言,只要i的数值在数组下标范围内,就是把数组第i-1下标的值返回即可。来看代码:
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
typedef int Status;
/* Status是函数的类型,其值是函数结果状态代码,如OK等 */
//注意这里返回值类型Status是一个整型,返回OK代表1,ERROR代表0。之后代码中出现就不再详述。
/* 初始条件:顺序线性表L已存在,1 ≤ i ≤ ListLength(L) */
/* 操作结果:用e返回L中第i个数据元素的值 */
//i为元素个数
Status GetElem(SqList L, int i, ElemType *e)
{
if (L.length == 0 || i < 1 || i > L.length)
return ERROR;
*e = L.data[i - 1];
return OK;//注意这里返回值类型Status是一个整型,返回OK代表1,ERROR代表0。之后代码中出现就不再详述。
}