Java 实现在顺序表末尾插入一个元素

文章详细介绍了顺序表的实现过程,包括在数组中插入元素的步骤,如何判断数组是否已满以及满时如何进行扩容操作。通过`Arrays.copyOf`函数实现数组容量翻倍,确保能继续插入元素。此外,还提供了用于检查数组是否满和获取顺序表长度的方法。
摘要由CSDN通过智能技术生成

一、思路

1.因为我们是用数组实现的顺序表,因此首先要保证数组有足够的空间来进行插入元素.
2.如果数组满了就需要将数组扩容,没满就开始插入.
3.当前数组中的元素个数就是每一次要插入的末尾位置的下标.
4.定义一个 usedSize 来表示当前的元素个数.
5.插入的时候就是往 usedSize 下标插入一个元素.
6.每一次成功插入后,就给元素个数加一,也就是 usedSize 加一.


二、图解


当前的 data 就是要插入的元素,末尾位置指的是紧挨着最后一个元素的位置,而不是数组的最后一个位置,在当前情况下,末尾位置就是 5 下标的位置。

上述图片展示的是插入一个新元素前的情况,可以看到此时数组中有 5 个元素,usedSize 的值就是 5,也就是说,我要插入的位置的下标就是当前的 usedSize 的下标,也就是 5 下标。



上述是插入后的图解,可以看到此时的 data 元素占据了 5 下标的位置。

如果此时我要再插入一个新元素,因为此时的元素个数变为了 6 ,因此插入的位置虽然还是 usedSize 下标,但是由 5 下标变为了 6 下标。

下图展示的再次插入一个新元素的情况。


鉴于以上,足以证明 usedSize 的值,也就是当前的元素个数即是要插入的末尾位置的下标。


三、如何判断数组当前的空间是否满了

求出当前 数组长度顺序表长度(元素个数),之后再拿它们两个比较,如果元素个数大于或者等于数组长度,此时就说明数组空间满了,就需要扩容了。

写一个 size() 方法用来求当前顺序表长度。

public int size() {
   
    // 直接返回元素个数
    return this.usedSize;
}


然后使用下面语句求出数组的长度。

this.elem.length


将它们两个比较就可以判断出当前的空间是不是满了。

可以写一个方法来判断空间是不是满的。

 public Boolean isFull() {
   
     // 如果顺序表长度大于或者等于数组的长度就是满了
     //if (size() >= this.elem.length) {
   
         // 此时为满了
            //return true;
     //}
     // 此时为不满<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

与大师约会

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

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

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

打赏作者

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

抵扣说明:

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

余额充值