关于new开辟空间的问题
来源:4-3 Shift Up
unknown花名
2019-07-16
假如创建堆时传入了100,也就是开辟了100+1=101个空间,咱们的堆是从1开始索引的,也就是0这个位置空间并没有用,这样会出现一个问题,我们往堆里添加元素的时候其实还是能加101个元素的。那是不是一开始我们就分配100个空间就可以了呢,虽然不差这一个…
写回答
1回答
-
根据我们的逻辑,添加不了101个元素。
因为每次添加,都是:data[count+1] = item;
count初始是0,所以第一个元素在data[0 + 1] = data[1]的位置。我们的逻辑永远不会碰data[0]这个位置。这个位置也永远不会存任何元素。
所以,根据我们的逻辑,虽然开出了101个空间,但只能存100个元素。
继续加油!:)
012019-07-16
相似问题