为什么向数组末添加元素等同于从头开始呢,size不是指向数组中第一个没有元素的相应位置吗

来源:2-3 向数组中添加元素

绫清竹

2018-08-25

我猜测老师的意思是如果只向数组末添加一个元素那么倒数第二个没有元素的位置就是数组中第一个没有元素的位置;这样的话从后向前跟从前向后添加才能是一样的,可是我有疑惑,在最末位置添加元素,可第一个没有元素的位置怎么会是倒数第二个呢,如果通俗的说左右,最右端就是我们添加的末尾元素,那第一个没有元素的位置不应该在最左端吗,因为从左向右最左端是第一个啊

写回答

1回答

liuyubobobo

2018-08-25

抱歉,我没有很理解你的问题。你具体是指课程中的哪段代码?你认为应该是怎样的?


以课程官方github代码为例,这一小节代码传送门:https://github.com/liuyubobobo/Play-with-Data-Structures/blob/master/02-Arrays/03-Add-Element-in-Array/src/Array.java

在数组末添加元素(addLast)就是在size的位置添加元素,如39行所示。你标题说的:size指向数组中第一个没有元素的位置是正确的。


当我们统一实现了add(index, e)这个方法后,addLast依然是在size位置添加元素,只不过依靠调用add(size, e)来实现,如41行所示:)

0
3
绫清竹
回复
liuyubobobo
已经理解,非常感谢
2018-08-25
共3条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程