对于线性表的顺序存储结构来说,如果我们要实现GetElem操作,即将线性表L中的第i个位置元素值返回,其实是非常简单的。就程序而言, 只要i的数值在数组下标范围内,就是把数组第i-1下标的值返回即可。

    来看代码:

    1. #define OK 1
    2. #define ERROR 0
    3. #define TRUE 1
    4. #define FALSE 0
    5. typedef int Status;
    6. /* Status是函数的类型,其值是函数结果状态代码,如OK等 */
    7. /* 初始条件:顺序线性表L已存在,1≤i≤ListLength(L) */
    8. /* 操作结果:用e返回L中第i个数据元素的值 */
    9. Status GetElem(SqList L, int i, ElemType *e) {
    10. if (L.length == 0 || i < 1 || i > L.length)
    11. return ERROR;
    12. *e = L.data[i - 1];
    13. return OK;
    14. }

    注意这里返回值类型Status是一个整型,返回OK代表1,ERROR代表0。 之后代码中出现就不再详述。