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

线性表插入删除

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

相关文章

  • 数据结构与算法 —— 02 栈

    2.栈(stack) ——————本质为:"线性表"栈是限定仅在表尾进行'插入'和'删除'的线性表。允许插入和删除...

  • 线性表

    线性表建立 插入·删除·排序 元素

  • 队列

    定义 队列是一种特殊的线性表,其插入和删除操作分别在线性表的两端进行,插入称为入队(enqueue),删除称为出兑...

  • 数据结构与算法栈和队列

    1.栈的基本概念只允许在一端进行插入或删除操作的线性表,先进后出 结构:栈顶(Top):线性表允许进行插入和删除的...

  • 栈与队列

    栈是限定仅在表尾进行插入和删除操作的线性表。队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 栈的...

  • 基础篇(三)——栈与队列

    栈是限定仅在表尾进行插入和删除操作的线性表。 队列是只允许在一端进行插入操作、而在另一端进行删除操作的线性表。 一...

  • 大话数据结构(第四章)-栈与队列

    tips:栈是限定尽在表尾进行插入和删除操作的线性表队列是只允许在一端进行插入操作、而在另一端进行删除操作的线性表...

  • 限定性线性表的栈(Stack)

    前言 栈作为一种限定性线性表,是将线性表的插入和删除操作限制为仅在表的一端进行,通常将表中允许进行插入、删除操作的...

  • 18. Interview-Data Structure

    1 栈 栈,操作受限的线性表,FILO,栈顶插入和删除,只有两种操作,入栈Push(插入)、出栈POP(删除)。 ...

  • 线性表插入删除

    Status ListInsert(SqlList *L, int i, ElemType e) { int k;...

网友评论

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

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