我在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
,因此每次都会评估条件块。
我真的不能说你的问题在哪里,因为你已经排除了所有真正感兴趣的代码。如果你补充一点,我可以告诉你更多。