数据结构与算法(新手篇1)

顺序表算法:

顺序表是计算机内存中以数组的形式保存的线性表,是指使用一组地址连续的存储单元依次存储数据元素的线性结构。

插入数据元素:

在顺序表中的第a(0<=a<=length)个位置上插入新的元素b.

如果a的值不正确则返回error。

否则,从第a个位置以及以后的元素向后移动一位,给元素b腾出空间。并且表的长度+1;

STATU insertElem(SqList *pList, int pos, ElemType elem) {

    int i = 0;

 

    // 判断要插入的位置是否合理

    if (pos < 0 || pos > pList->length)

       return ERROR;

 

    // 将data[pos]及后面的元素都向后移动一个位置

    for (i = pList->length - 1; i > pos; i--) {

       pList->data[i] = pList->data[i-1];

    }

    pList->data[pos] = elem;

    pList->length++; // 顺序表长度加1

    return OK;

}

删除元素:

删除第a(0<=a<=length)个位置的元素b

a值如果不正确,返回error

否则第a个元素以及以后的元素向前移动一位。并且,表的长度-1;

STATU removeElem(SqList *pList, int pos, ElemType *pElem) {

    int i = 0;

 

    // 判断要删除的位置是否合理

    if (pos < 0 || pos > pList->length)

       return ERROR;

 

    *pElem = pList->data[pos];

    // 将data[pos]后面的元素都向前移动一个位置

    for (i = pos; i < pList->length; i++) {

       pList->data[i] = pList->data[i+1];

    }

    pList->length--; // 顺序表长度减1

 

    return OK;

}

 

posted @ 2019-04-02 23:05  一框一吉后三告  阅读(139)  评论(0)    收藏  举报