【数据结构】线性表的顺序储存结构(java实现)

本文介绍了线性表的顺序储存结构及其在Java中的实现,包括优点和缺点。顺序储存结构允许快速访问元素,但插入和删除操作可能需要移动大量元素。文章详细阐述了如何进行打印顺序表、获取长度、判定元素是否存在、查找元素位置、新增和删除元素等操作,并提供了Java代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

线性表

 线性表的顺序储存结构

线性表顺序存储结构的优缺点

优点: 

缺点:

顺序储存结构的操作(JAVA自实现)

打印顺序表

获取顺序表长度

判定是否包含某个元素

查找某个元素对应的位置

新增元素(默认在数组最后新增)

在指定位置处新增元素

获取指定位置的元素 

删除第一次出现的关键字key

清空顺序表


 

线性表

线性表(List):零个或多个数据元素的有限序列。

线性表顾名思义就是像线一样的表,每个节点都具有唯一一个前驱元素和后继元素(除了第一个节点没有前驱,后一个节点没有后继)。常见的线性表:顺序表、链表、栈、队列..

线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。

如下图所示就是一个非常简单的线性表。具体来说线性表一般要满足三个条件:

  • 是一个序列。每个节点都具有唯一一个前驱元素和后继元素(除了第一个节点没有前驱,后一个节点没有后继)
  • 有限的。再牛逼的计算机也得处理有限的数据不是。
  • 每个元素都是具有相同的数据类型的数据。

 线性表的顺序储存结构

线性表的顺序储存结构,指的是用一段地址连续的存储单元依次储存线性表的数据元素。因此在计算机中可以用一维数组来实现该顺序储存结构。

来看线性表的顺序存储的结构代码:

public class MyArrayList {
    public int[] elem;
    public int usedsize;  //线性表的长度,即存放了多少个有效的数字
    public static final int DEFAULTSIZE = 5;

    public MyArrayList(){
        this.elem = new int[DEFAULTSIZE];
    }

这里,我们就发现描述顺序储存结构需要三个属性:

  • 储存空间的起始位置:数组elem下标元素0的位置即整个线性表的起始位置。
  • 线性表的最大储存长度:这里定义了一个常量DEFAULTSIZE,来指定线性表的最大储存长度为5
  • 线性表的当前长度:即线性表当前存放了多少个有效的数字。这里用usedSize

线性表顺序存储结构的优缺点

优点: 

  • 无须为表示表中元素之 间的逻辑关系而增加额外的存储空间
  • 可以快速地存取表中任一位置的元素

缺点:

  • 插入和删除操作需要移动大量元素
  • 当线性表长度变化较大时,难以确定存储空间的容量
  • 造成存储空间的"碎片"

顺序储存结构的操作(JAVA自实现)

下面笔者用java实现了顺序储存结构的几种常见的操作。

打印顺

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值