关于元素删除。移动的问题!

来源:2-5 包含,搜索和删除

weixin_慕婉清6445000

2020-03-05

这里:关于将后一个元素往前移动,和老师写的data[i-1]=data[i];会有什么不同吗?请问

写回答

2回答

liuyubobobo

2020-03-06

i < size,也就是 i 会取到 size - 1。但是下面的语句会访问 i + 1,也就是访问到 data[size]。但是 data[size] 中不应该有合法元素。如果 size == data.length 还会数组越界。


使用一个测试用例是,实际尝试一下,看看你的这个代码运行的效果是怎样的?为什么会出现这个情况?


加油!:)

0
0

IamXGW

2020-03-05

//假如现在要求删除 index = 2 的元素
i = index + 1; // 这时候i=3
data[i] = data[i + 1]; // 这时候首先操作的相当于是data[3] = data[3 + 1]

//img.mukewang.com/szimg/5e60f13409af08e405560276.jpg

0
1
IamXGW
如果按照你那么写的话, i 应该等于 index
2020-03-05
共1条回复

玩转数据结构

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

6221 学习 · 1704 问题

查看课程