线性表插入删除

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.造成存储空间的碎片

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 6,169评论 0 2
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,748评论 0 38
  • 人生就像马拉松 “人生就像马拉松,获胜的关键不在于瞬间的爆发,而在于途中的坚持。” ——张志雄 传统教育告诉我们,...
    不识途的老马阅读 3,816评论 0 1
  • 感受是非暴力沟通的第二个要素,是指身心的感觉和感情。是一种可在此时此刻觉察到的生命状态。包括:身体反应、心情状态和...
    静静云阅读 4,982评论 0 0
  • 编译链接过程 一个完整的编译链接过程包含了以下步骤: 预编译 编译 汇编 链接 预编译 预编译的处理规则如下 删除...
    aron1992阅读 2,915评论 0 2