美文网首页王道408数据结构
线性表元素插入和删除

线性表元素插入和删除

作者: sakura579 | 来源:发表于2020-08-05 10:47 被阅读0次

单链表(链式存储结构)插入


单链表(链式存储结构)删除


有头结点的单链表
在开始结点前插入元素
等同在头结点后插入元素


不含头结点的单链表
在开始结点前插入元素

s->next = head;
head = s;

因此含有头结点的单链表比不含头结点的单链表在操作上简单

就是因为含有头结点的单链表在任何位置上插入新元素都是统一的操作

而不含有头结点的单链表需要分两种情况讨论
多了一些麻烦

含有头结点单链表的删除


不含头结点单链表的删除


双链表的结点插入

首先必须要先保存p->next到s->next(防止断链)
后面的依照链表的正确结构 随便连

双链表的结点删除

双链表要删除一个结点 仅仅知道这个结点的地址信息即可

相邻的地址信息在这个结点内部存着 不需要额外的指针指出来

顺序表的插入

注意更新length的值 让它的值能正确反应当前所存的线性表的长度

p是插入的位置
e是插入的元素

判断插入位置是否合法 (即0~length)
判断插入时机是否合法 (即length<maxSize时)

失败返回0 成功返回1

顺序表的删除

这里若强行设length为3


那么现在这个顺序表元素有哪几个?
只有0、1、2

其他虽然也在数组中 但是已经不属于顺序表的元素了

0~length-1这个下标范围才是顺序表中元素所在范围
除此之外都不算顺序表中的元素

所以我如果想将顺序表清0
直接让length=0即可
虽然那些元素还留在数组中 但是对一个顺序表来说 是不可见的。

length=0不合法 这个条件已经包含在了前面两个条件中

int &e 我们需要这个被删除元素的值
需要通过这个函数把值改变掉
因此定义为引用型

相关文章

  • 线性表

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

  • 线性表元素插入和删除

    单链表(链式存储结构)插入 单链表(链式存储结构)删除 有头结点的单链表在开始结点前插入元素等同在头结点后插入元素...

  • 栈(链栈)

    栈:限定只能在表尾进行插入和删除的线性表。 链栈:使用链表表示的栈。 链栈特性: 只能栈顶插入和删除元素。 无需预...

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

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

  • 栈与队列

    栈与队列 栈 栈是一种限定仅在一端进行插入和删除的 线性表 ,无论是往栈中插入元素还是删除栈中的元素,或者读取栈中...

  • 前端数据结构

    栈(stack) 限定仅在表尾进行插入和删除操作的线性表(一个线性表是n个具有相同特性的数据元素的有限序列,线性表...

  • java 队列接口的设计

    队列 队列一种特殊的线性表, 插入和删除操作分别在表的两端进行,特点是先进先出。把插入元素叫入队,这端叫对尾,删除...

  • 算法与数据结构系列之[链表]

    上一篇介绍了线性表的顺序存储结构,顺序存储结构的最大缺点就是插入和删除时需要移除大量元素,如果要插入或删除的数据量...

  • splice 用法

    splice 的功能: 删除元素/ 插入元素/ 替换元素 删除元素的用法: 替换元素 插入元素, 和替换元素的差别...

  • CS基础:栈

    栈 栈:限定仅在表尾进行插入和删除操作的线性表。 其中允许插入和删除的一端成为栈顶,另一端成为栈底,不含任意元素的...

网友评论

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

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