我在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,在我的二叉树中进行PreOrder搜索,我使用数组实现,但它不起作用。 请帮忙......
答案 0 :(得分:0)
#at:
会在索引为< SubscriptOutOfBounds
时发出信号0或大于数组的大小(Smalltalk集合是基于1的,即第一个索引是1,而不是0)。 8显然大于4(myArray
的大小)。
开始时的检查永远不会评估为False
,因为您的数组没有条目-1
,因此每次都会评估条件块。
我无法确切地说出你的问题在哪里,因为你排除了所有真正感兴趣的代码。如果你补充一下,我可以告诉你更多。