美文网首页
线性表插入删除

线性表插入删除

作者: xcreal | 来源:发表于2018-07-23 15:57 被阅读0次

    Status ListInsert(SqlList *L, int i, ElemType e)

    {

    int k;

    if (L->length == MAXSIZE)//顺序线性表已满

    return ERROR;

    if (i<1 || i>L->length + 1)//当i不在范围时

    return ERROR;

    if (i <= L->length)//若插入数据位置不在表尾

    {

    for (k = L->length - 1; k >= i - 1; k--)//将要插入位置后数据元素向后移动一位

    L->data[k + 1] = L->data[k];

    }

    L->data[i - 1] = e;

    L->length++;

    return OK;

    }

    Status ListDelete(SqlList *L, int i, ElemType *e)

    {

    int k;

    if (L->length == 0)//线性表为空

    return ERROR;

    if (i<1 || i>L->length)

    return ERROR;

    *e = L->data[i - 1];

    if (i < L->length)//如果删除不是最后位置

    {

    for (k = i; k < L->length; k++)//将删除位置后继元素前移

    L->data[k - 1] = L->data[k];

    }

    L->length--;

    return OK;

    }

    顺序存储结构优点

    1.无须为表示表中元素之间的逻辑关系而增加额外的存储空间

    2.可以快速的存取表中任意一元素的位置

    缺点:

    1.插入和删除操作需要移动大量元素

    2.当线性表长度变化较大时,难以确定存储空间的容量

    3.造成存储空间的碎片

    相关文章

      网友评论

          本文标题:线性表插入删除

          本文链接:https://www.haomeiwen.com/subject/jcsjmftx.html