二叉查詢樹的實現和刪除

2022-09-08 13:12:11 字數 2316 閱讀 6006

樹是電腦科學中經常用到的一種資料結構。

樹是一種非線性的資料結構,以分層的方式 儲存資料。

樹被用來儲存具有層級關係的資料,比如檔案系統中的檔案;樹還被用來儲存 有序列表。

選擇樹而不是那些基本的資料結構,是因 為在二叉樹上進行查詢非常快(而在鍊錶上查詢則不是這樣),為二叉樹新增或刪除元素 也非常快(而對陣列執行新增或刪除操作則不是這樣)。

二叉樹是一種特殊的樹,它的子節點個數不超過兩個。二叉樹具有一些特殊的計算性質,使得在它們之上的一些操作異常高效

// 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...