关于new开辟空间的问题

来源:4-3 Shift Up

unknown花名

2019-07-16

假如创建堆时传入了100,也就是开辟了100+1=101个空间,咱们的堆是从1开始索引的,也就是0这个位置空间并没有用,这样会出现一个问题,我们往堆里添加元素的时候其实还是能加101个元素的。那是不是一开始我们就分配100个空间就可以了呢,虽然不差这一个…

写回答

1回答

liuyubobobo

2019-07-16

根据我们的逻辑,添加不了101个元素。


因为每次添加,都是:data[count+1] = item;

count初始是0,所以第一个元素在data[0 + 1] = data[1]的位置。我们的逻辑永远不会碰data[0]这个位置。这个位置也永远不会存任何元素。

所以,根据我们的逻辑,虽然开出了101个空间,但只能存100个元素。


继续加油!:)

0
1
unknown花名
非常感谢!
2019-07-16
共1条回复

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程