数据结构学习--线性表

数据结构学习–线性表

大纲

  1. 线性表定义和特点
  2. 线性表的类型定义
  3. 线性表的顺序存储结构
  4. 线性表的链式存储结构

具体案例

定义和特点

定义:具有相同特性的数据元素的一个有限序列
在这里插入图片描述

在这里插入图片描述

线性表的类型定义

Java语法

public class SinglyListNode {
    int val;
    SinglyListNode next;
    SinglyListNode(int x) { val = x; }
}

在这里插入图片描述
基本操作:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

线性表的顺序存储结构

线性表的顺序存储结构也称为顺序映像
定义:逻辑上相邻的数据元素存储在物理上相邻的存储单元的存储结构

  1. 地址连续
  2. 依次存放
  3. 随机存取
  4. 类型相同

如果知道某一个元素存储的位置,就可以得到所有元素的存储地址
通过数组 + 长度 完成对线性表的定义
在这里插入图片描述

注意:逻辑位序和物理位序相差1

具体方法实现

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

线性表的链式存储结构

定义

用一组物理位置任意的存储单元来存放线性表的数据元素
这组存储单元位置是任意的,可以相邻,也可以不相邻(即逻辑次序和物理次序不同),访问元素是从第一个元素依次访问。顺序存取

结点:数据元素的存储映像.由数据域指针域两部分组成

链表: n个结点由指针链组成一个链表,它是线性表的链式存储映像,称为线性表的链式存储结构
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

空表:
有头节点,则头结点的指针域为空
无头节点,则头指针指向空

头结点的好处:

  1. 便于首元结点的处理
    首元结点的地址保存在头结点的指针域当中,所以在链表的第一个位置上的操作和其它位置一致,无须进行特殊处理

  2. 便于空表和非空表的统一处理
    无论链表是否为空,头指针都是指向头结点的非空指针,因此空表和非空表的处理也就统一了

具体方法的实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查找

根据第几个查找元素的数据
在这里插入图片描述
根据查找值返回地址
在这里插入图片描述
根据查找返回位置
在这里插入图片描述

插入

先找到要插入的位置的前一个元素
先赋地址给要插入的元素的直接后驱,再让其前一个元素的直接后驱指向它
在这里插入图片描述
在这里插入图片描述

删除

先找到要删除的元素的前一个元素
让其直接后驱指向其下下个元素
在这里插入图片描述
在这里插入图片描述

建立单链表–头插法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

建立单链表–尾插法

在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

挽天技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值