1
我試圖把一個二叉搜索樹與n個元素並將它們存儲在一個數組列表中。目前,它們存儲在數組列表中的位置是以樹的根爲元素1(p =數組中父元素的索引),左邊的子元素爲索引p * 2,右邊的子元素爲在指數p * 2 + 1。在一個數組列表中存儲一個二叉搜索樹
目前我儘量不這樣做使用此代碼:
public static void arraywriter(TreeNode<String> node) throws FileNotFoundException
{
int pos = 1;
outputform.set(pos, node.getElement());
pos = pos*2;
if(node.getLeft() != null) {
arraywriter(node.getLeft());
}
pos = pos+1;
if(node.getRight() != null) {
arraywriter(node.getRight());
}
}
請告訴我錯了我的邏輯是什麼?我將如何完成這項工作? 當前如果我使用這個,然後嘗試打印輸出內容(這是ArrayList的名稱,它的基本大小爲10,000)我得到:索引之一返回爲空,其餘爲「n」其中也是我初始化每一個元素。
謝謝!
的一個問題是,你pos'目前設定'1',在這樣arraywriter'其價值開始將每次1。您可能希望將'pos'作爲參數添加到'arraywriter'中,以便可以使用'pos * 2'和'pos * 2 + 1'來調用它,然後您將首次調用'arraywriter', pos' of 1. – mikej
嘿謝謝!我不相信我錯過了! – TheJavaKing