C 實現二叉排序樹

2021-10-01 07:08:08 字數 1047 閱讀 6075

#include

using

namespace std;

class

btreenode

//二叉樹的結點類

;

二叉樹類:

class

btree

//二叉樹類

}void

build()

}void

insert

(int d,btreenode *r,btreenode *p)

else

}else

if(d>=r-

>data)

else}}

void

preorder

(btreenode *r)

if(r-

>right!=

null)}

void

inorder

(btreenode *r)

cout<

>data<<

" ";

if(r-

>right!=

null)}

void

postorder

(btreenode *r)

if(r-

>right!=

null

) cout<

>data<<

" ";}}

;

主函式部分:input函式是獲取一串數列,還要結合build函式來建立二叉排序樹

最後還有三種遍歷樹的操作

void

main()

這是根據二叉排序樹規則來自己實現,花了本人乙個多小時

測試情況

C 二叉排序樹

輸入一系列整數,建立二叉排序樹,並進行前序,中序,後序遍歷。輸入第一行包括乙個整數n 1 n 100 接下來的一行包括n個整數。可能有多組測試資料,對於每組資料,將題目所給資料建立乙個二叉排序樹,並對二叉排序樹進行前序 中序和後序遍歷。每種遍歷結果輸出一行。每行最後乙個資料之後有乙個空格。輸入中可能...

二叉排序樹實現(C語言)

include include 定義基本的資料結構和型別預定義 struct treenode typedef struct treenode position typedef struct treenode searchtree typedef int elementtype struct tre...

C 簡單二叉排序樹實現

基本思路 1 使用隨機數構建二叉排序樹,若樹空則新建節點,若大於節點就遞迴插入右子樹,若小於節點則遞迴構建左子樹。2 中序遍歷即可公升序輸出,調整左子樹與右子樹遍歷順序即可降序輸出。3 查詢 若與節點匹配成功,則返回節點指標,若小於節點則遞迴查詢左子樹,若大於則遞迴查詢右子樹。include usi...