二叉查詢樹 BST

2022-04-22 11:51:15 字數 1041 閱讀 5537

一、定義:

要麼二叉查詢樹是一棵空樹

要麼二叉查詢樹由根結點、左子樹、右子樹組成,其中左子樹和右子樹都是二叉查詢樹,且左子樹上的所有節點的資料域都小於或等於

根結點的資料域,右子樹上所有節點的資料域都大於

根結點的資料域。

二、二叉查詢樹的基本操作

2.1查詢操作

void search(node* root,int

x)

if(x==root->data)

else

if(x>root->data)

else

}

2.2 插入操作

void insert(node* &root,int

x)

if(x==root->data)

else

if(xdata)

else

}

2.3 建立二叉查詢樹

node* create(int data,int

n)

return

root;

}

2.4 刪除某個節點

把以二叉查詢樹中比結點權值小的最大結點稱為該結點的前驅,把比結點權值大的最小結點稱為該結點的後繼;

//尋找root為根結點的樹中的最大權值結點

node* findmin(node*root)

return

root;

}

//尋找以root為根結點的樹中的最小權值結點

node* findmax(node*root)

return

root;

}

void deletenode(node* root,int

x)else

if(root->left!=null)

else

}else

if(root->data>x)

else

}

二叉查詢樹 BST

當所有的靜態查詢結構新增和刪除乙個資料的時候,整個結構都需要重建。這對於常常需要在查詢過程中動態改變資料而言,是災難性的。因此人們就必須去尋找高效的動態查詢結構,我們在這討論乙個非常常用的動態查詢樹 二叉查詢樹。二叉查詢樹的特點 下面的圖就是兩棵二叉查詢樹,我們可以總結一下他的特點 1 若它的左子樹...

二叉查詢樹(BST)

二叉查詢樹,也稱為二叉排序樹,二叉搜尋樹。二叉查詢樹結合了鍊錶插入的靈活性和有序陣列查詢 二分查詢 的高效性。用二叉查詢樹實現有序符號表的api。public class bst,value 有序符號表的相關方法 public intsize private intsize node x publi...

二叉查詢樹BST

樹由node物件組成,每個物件有一對鍵值 兩條鏈結和乙個節點計數器n。每個node物件都是一棵含有n個節點的子樹的根節點,它的左鏈結指向一棵由小於該節點的所有鍵組成的二叉查詢樹,右鏈結指向一棵由大於該節點的所有鍵組成的二叉查詢樹。在bst類中,還應定義乙個node物件root,指向當前二叉樹的根節點...