樹是電腦科學中經常用到的一種資料結構。
樹是一種非線性的資料結構,以分層的方式 儲存資料。
樹被用來儲存具有層級關係的資料,比如檔案系統中的檔案;樹還被用來儲存 有序列表。
選擇樹而不是那些基本的資料結構,是因 為在二叉樹上進行查詢非常快(而在鍊錶上查詢則不是這樣),為二叉樹新增或刪除元素 也非常快(而對陣列執行新增或刪除操作則不是這樣)。
二叉樹是一種特殊的樹,它的子節點個數不超過兩個。二叉樹具有一些特殊的計算性質,使得在它們之上的一些操作異常高效
// node 節點型別
function node(data, left, right)
// 返回資料
function show()
// 定義bst
function bst ()
總體步驟**實現:(1) 設根節點為當前節點。
(2) 如果待插入節點儲存的資料小於當前節點,則設新的當前節點為原節點的左節點;反
之,執行第 4 步。
(3) 如果當前節點的左節點為 null,就將新的節點插入這個位置,退出迴圈;反之,繼續
執行下一次迴圈。
(4) 設新的當前節點為原節點的右節點。
(5) 如果當前節點的右節點為 null,就將新的節點插入這個位置,退出迴圈;反之,繼續
執行下一次迴圈。
function insert(data) else
} else }}
}}
function inorder(node)
}function putstr(str)
function preorder(node)
}function postorder(node)
}
二叉樹的刪除是最複雜的,我們先把實現**提供
function getmin()
return current.data;
}function getmax()
return current.data;
}function find(data) else if (data < current.data) else
}return null
}function remove(data)
const getsmallest = function(node) else
}function removenode(node, data) else if (node.data == data) else if (node.left == null) else if (node.right == null) else
} else if (data < node.data) else
}
刪除的演算法步驟:
C 實現二叉查詢樹以及二叉樹的刪除
首先需要知道二叉樹的基礎知識,比父節點小的元素放在左邊,大的放在右邊 對二叉樹進行遍歷查詢 沒有找到返回 1 二叉樹的節點刪除難點就在於要分類討論的地方太多了,容易混亂 1.前提是刪除的節點得存在 使用上面提到的二叉查詢樹 2.首先需要找到需要刪除的節點 3.需要找到刪除節點的父節點 實現如下 之後...
(二叉樹)二叉搜尋樹的查詢 插入和刪除
二叉搜尋樹或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 它的左 右子樹也分別為二叉搜尋樹。二叉搜尋樹的特點之一即是其中序遍歷為公升序。根據二叉搜尋樹的性質,每個結點的值都是大於其...
python實現二叉查詢樹的查詢 插入 刪除操作
本文用python3實現二叉查詢樹的查詢 插入 刪除操作。完整 查詢操作 先取根節點,如果它等於要查詢的數那就返回。如果要查詢的數比根節點的值小,就在左子樹中遞迴查詢 如果要查詢的數比根節點的值大,那就在右子樹中遞迴查詢。def search self,data res node self.root...