pharo 中的递归方法产生 #SubscriptOutOfBounds:8



我在Pharo中创建了一个名为BinarySearchTreean的类,我实现了一个名为BinarySearchTree>>PreOrder和BinarySearchTree>>index

预购:myArray 索引:位置

(myArray at: position) ~= -1 
ifTrue: [ 
Transcript show: (myArray at: position).
self Preorder: myArray index: (position * 2).
self Preorder: myArray index: (position * 2) + 1.
].

然后,我为这个数组 #(90 60 95 50) 提供了索引 1,以便在我的二叉树中进行预购搜索,我使用数组实现了该搜索,但它不起作用。 请帮忙...

当索引<0 或大于数组大小时,#at:将发出SubscriptOutOfBounds信号(Smalltalk 集合从 1 开始,即第一个索引是 1,而不是 0)。 8 显然大于 4(大小为myArray)。

开始时的检查永远不会计算为False,因为您的数组没有条目-1,因此每次都会评估条件块。

我真的不能说你的问题在哪里,因为你已经排除了所有真正感兴趣的代码。如果你补充一点,我可以告诉你更多。

相关内容

  • 没有找到相关文章

最新更新