我已經找遍了,似乎無法找到任何幫助。對於一個學校項目我有一個BST樹,我必須將所有int從樹中放入一個int數組稱爲BSTarray。
這是我到目前爲止有:
將BST轉換爲數組
public int [] toBSTArray() {
int size = 20;
int [] BSTarray = new int [size];
for(int i = 0; i <size; i++) {
makeArray(root);
BSTarray[i] = root.getValue();
}
return BSTarray;
}
//helper method called by toBSTArray
public void makeArray(BinarySearchTreeNode node) {
if (node != null) {
makeArray(node.getLeft());
makeArray(node.getRight());
// System.out.print(node.getValue() + " ");
}
}
我想應該這個方法要經過樹,並添加發現到在BSTarray不同的索引值,但所有它做的是將相同編號到數組中的所有索引中。我在做遞歸錯誤嗎?
我們不允許使用「列表「 – Gcap
我添加了一個不使用列表的版本,請參閱我的更新。 –
謝謝!我們必須從驅動類中調用它,所以我再次用extractValues(n,results,0)創建了toBSTArray方法;並且我返回數組「結果」,但它最終會打印到控制檯,如下所示:[I @ 66780515 – Gcap