请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于数组

data[count + 1]=item;这里数组越界的原因及解决方法没有理解,请在详细介绍一下。

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2021-04-22 23:27:47

抱歉,我没有特别理解你不理解的点。是认为在什么情况下,这个代码会发生错误?还是认为在什么情况下,这个代码你觉得应该如何执行,可实际却是如何执行的?你没有理解?

0 回复 有任何疑惑可以回复我~
  • 提问者 BSJ_dong2020 #1
    什么情况下会报错?还有定义 int capacity后怎么解决数组越界的?
    回复 有任何疑惑可以回复我~ 2021-04-23 12:25:05
  • liuyubobobo 回复 提问者 BSJ_dong2020 #2
    如果向堆里添加超过 capacity 个元素会报错。在这一版代码中,定义的 capacity 无法解决数组越界,它只是告诉用户,这个对最多盛放 capacity 个元素。这就像定义一个 int arr[10],只是告诉用户这个数组索引范围是 0-9,当访问 arr[10] 的时候,是不安全的(在 Java 中报越界错误)。归根到底是因为这个课程的堆,是使用静态数组实现的。如果想取消这个限制,需要使用动态数组。我的另外一个课程的堆使用动态数组实现,将没有这个限制。感兴趣可以参考这个代码(Java):https://github.com/liuyubobobo/Play-with-Data-Structures/blob/master/08-Heap-and-Priority-Queue/05-Heapify-and-Replace-in-Heap/src/MaxHeap.java
    回复 有任何疑惑可以回复我~ 2021-04-23 18:47:39
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信