構建二叉搜尋樹及基本操作

2021-09-25 03:13:51 字數 1092 閱讀 4910

二叉搜尋樹具有下列性質: 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值; 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值; 它的左、右子樹也分別為二叉排序樹。

在二叉搜尋樹的基礎上,如果進行一次中序遍歷,則會正好會把節點的權值從小到大搜一遍。

#include

#include

#include

using namespace std;

struct node

;struct tree

;//先序遍歷(dfs遍歷)

void

preorder

(node *node)

}//中序遍歷-->正好是從小到大排序

void

inorder

(node *node)

}//後序遍歷

void

postorder

(node *node)

}//插入節點

void

insert_node

(tree *tree,

int value)

else

else

}else

else}}

}}//求樹的高度

intget_height

(node *node)

else

}//最大值

intget_max

(node *node)

}int

main()

; tree tree;

tree.root=

null

;for

(int i=

0; i<=

6; i++

)preorder

(tree.root)

; cout

get_height

(tree.root)

; cout

get_max

(tree.root)

; cout

}

二叉搜尋樹的基本操作

建立乙個非負二叉搜尋樹 1表空結點 編寫查詢函式,層序遍歷函式,插入函式,刪除函式,查詢最大值最小值函式 輸入該樹和要查詢的值 輸出 如果找到,列印出 x is found 沒找到列印出 not found 列印出層序遍歷序列 刪除最大值和最小值 刪除成功輸出 x is delete 最後再進行一層...

二叉搜尋樹的基本操作

二叉搜尋樹 binary search tree 它或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 它的左 右子樹也分別為二叉搜尋樹樹。節點設定 typedef int datat...

二叉搜尋樹的基本操作

pragma once typedef int datatype typedef struct bstreenode bstnode include include include bstnode buybstreenode datatype data pnewnode data data pnew...