二叉查詢樹的構造演算法

2022-06-28 01:15:10 字數 1395 閱讀 5907

今天來寫一下二叉查詢樹的構造演算法

二叉查詢樹:二叉查詢樹的的特點是所有節點的值要大於其左節點的值,小於其右節點的值。。。

因此我們在構造二叉查詢樹的查詢演算法的時候總是用要查詢的數來和節點的值做乙個比較,如果節點的值大於要查詢的數,那麼繼續查詢其左節點,反之則繼續查詢器右節點,一直到查詢到你要的數。

本演算法包括計算樹的高度,樹的葉子節點的數目,樹的所有節點的數目,以及樹的輸出。

1.標頭檔案

1 #include 2 #include

2.結構

1 typedef struct

node

2btnode,*btnode;

3.構造樹

btnode create()

return

root;  //最後返回這個二叉樹

}

4.計算樹的高度

1

intbtdepth(btnode bt)

212 }

5.計算樹的節點數

1

intncount(btnode bt)

2

6.計算樹的葉子節點數

1

intlcount(btnode bt)

2

7.查詢演算法

1

void search(btnode bt,int

key)210

else

if (bt->data >key)  //要查詢的數小於節點值,則繼續查詢左節點

11 bt = bt->lchild;

12else  //反之查詢右節點

13 bt = bt->rchild;14}

15if (bt ==null)

16 printf("

沒有找到!\n");

17 }

8.輸出演算法

1

void

print(btnode bt)  //利用中序遍歷輸出數的節點值

29 }

9.主函式

1

void

main()

2

演算法 二叉查詢樹

二叉查詢樹 binary search tree 也稱有序二叉樹 ordered binary tree 排序二叉樹 sorted binary tree 是指一棵空樹或者具有下列性質的二叉樹 1.若任意節點的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 2.若任意節點的右子樹不空,則右子...

二叉查詢樹演算法

判斷二插查詢樹是否含有 指定結點 param x return public boolean contains t x private boolean contains t x binarynode t int compareresult x.compareto t.element if compa...

二叉樹構造演算法

先序遍歷 中序遍歷 二叉樹 中序遍歷 後續遍歷 二叉樹 由先序遍歷和中序遍歷可以唯一的確定一顆二叉樹,使用遞迴的方法建立。由後續遍歷和中序遍歷可以唯一的確定一顆二叉樹,使用遞迴的方法建立。但是 先序遍歷和後續遍歷不能唯一的建立一顆二叉樹。include btree.cpp pre存放先序序列,in存...