二叉查詢樹

2021-09-24 02:21:53 字數 1600 閱讀 1762

二叉查詢樹在查詢中有著重要的應用,乙個二叉樹變成乙個二叉查詢樹後所具有的性質是:對於樹中的所有結點,它的左子樹中的所有關鍵字的值小於該結點的關鍵字值,它的右子樹中所有關鍵字的值大於該結點關鍵字的值。這就是二叉查詢樹。自己腦補一下什麼是二叉查詢樹,什麼是普通二叉樹。由於樹的遞迴定義,通常是遞迴地編寫這些操作的例程。

下面是二叉查詢樹的操作例程,注:由於這裡的所有操作函式都使用了遞迴,所以我把這些**的詳細總結放在了我的一篇專門用來總結遞迴的文章裡-------------遞迴演算法設計總結

標頭檔案

#ifndef tree_h_included

#define tree_h_included

typedef

struct tree_nodesearch_tree;

void

make_empty

(search_tree *t)

;search_tree *

find

(search_tree *t,

int x)

;search_tree *

find_min

(search_tree *t)

;search_tree *

find_max

(search_tree *t)

;search_tree *

insert_node

(search_tree *t,

int x)

;search_tree *

delete_node

(search_tree *t,

int x)

;#endif

// tree_h_included

c檔案

#include

#include

#include

"tree.h"

intmain()

void

make_empty

(search_tree *t)

}search_tree *

find

(search_tree *t,

int x)

}search_tree *

find_min

(search_tree *t)

search_tree *

find_max

(search_tree *t)

search_tree *

insert_node

(search_tree *t,

int x)

else

if(t->data > x)

else

if(t->data < x)

return t;

}search_tree *

delete_node

(search_tree *t,

int x)

else

if(x < t->data)

else

if(x > t->data)

else

if(t->left && t->right)

else

return t;

}

二叉樹 二叉查詢樹

構建二叉樹,判斷是否為二叉查詢樹,遞迴先序遍歷,非遞迴中序遍歷 include include include include using namespace std 二叉樹結點 struct treenode 鍊錶結點 struct listnode struct tempnodetempnode...

二叉樹 二叉查詢樹

二叉樹 binary tree 一種樹型結構,每個節點最多擁有兩個節點。如下圖 幾種型別的二叉樹 1.full binary tree 每個節點的孩子數 是 0 或者 2.對高度沒有要求。如下圖 2.perfect binary tree 這個就是最完美的樹,顧名思義,所有葉子節點都有相同的深度,並...

樹(樹,二叉樹,二叉查詢樹)

1.定義 n n 0 個結點構成的有限集合。當n 0時,稱為空樹 2.對於任一棵非空樹 n 0 它具備以下性質 1 樹中有乙個稱為 根 root 的特殊結點,用 r 表示 2 其餘結點可分為m m 0 個互不相交的有限集t1,t2,其中每個集合本身又是一棵樹,稱為原來樹的子樹。3.樹的一些性質 1 ...