5
我想在Julia中實現BST,但是當我調用插入函數時遇到了問題。當我嘗試創建新節點時,結構保持不變。如何在Julia中實現BST?
我的代碼:
type Node
key::Int64
left
right
end
function insert(key::Int64, node)
if node == 0
node = Node(key, 0, 0)
elseif key < node.key
insert(key, node.left)
elseif key > node.key
insert(key, node.right)
end
end
root = Node(0,0,0)
insert(1,root)
insert(2,root)
我也試圖改變零不了了之。我試過的下一個版本是Node中定義的數據類型,但是當我嘗試調用沒有值的插入(類似於C Null)時,它給了我錯誤。
感謝您的回答。
不知道我明白這個問題 - 你期望'insert'函數做什麼?運行你的代碼返回'Node(1,0,0)'爲倒數第二行,'Node(2,0,0)'爲最後一行,這似乎是正確的? –
我不確定BST是什麼,但是閱讀你的代碼就是你想要寫的一個函數,它需要一個'node'(帶有'key','left'和'right'的字段)和一個然後執行以下兩種操作之一:(i)如果未定義節點,則在其「key」字段中使用「key」參數創建一個新的「Node」實例,爲「left」和「或者(ii)如果'node'存在,用'key'參數更新函數的'left'或'right'字段? –
BST代表二進制搜索樹。功能插入結構的新節點。零不代表任何東西。 – pavelf