二叉排序樹又稱二叉查詢樹。它或者是一顆空樹,或者是具有以下性質的二叉樹:
①如果左子樹不空,那麼左子樹上所有結點的值均小於它的根結點的值;
②如果右子樹不空,那麼右子樹上所有結點的值均大於它的根結點的值;
③左右子樹也分別為二叉排序樹。
以下**實現了:
* 實現二叉排序樹,包括插入、www.cppcns.com中序遍歷、先序遍歷、後序遍歷、計算所有節點的最大距離的功能
*/public class binarytree
public void insert(int data)
} public void preorder()
//後序遍歷方法遞迴實現
public void postorder(node localroot)
} public void postorder()
/*** 層序遍歷二叉樹:現將根結點放入佇列中,然後每次都從佇列中取乙個結點列印該結點的值,
* 若這個結點有子結點,則將它的子結點放入佇列尾,直到隊列為空
*/ public void layertranverse()
} private int maxlen=0;
private int max(int a,int b)
public void findmaxdistance(node root)
} public static void main(string args) ;
bitree.buildtree(data);
system.out.print("二叉樹的中序遍歷:");
bitree.inorder();
system.out.println();
system.out.print("二叉樹的先序遍歷:");
bitree.preorder();
system.out.println();
system.out.print("二叉樹的後序遍歷:");
bitree.postorder();
system.out.println();
system.out.print("二叉樹的層序遍歷:");
bitree.layertranverse();
system.out.println();
bitree.findmaxdistance(bitree.root);
system.out.println("二叉樹中結點的最大距離:"+bitree.maxlen); }}
本文標題: 二叉排序樹的實現與基本操作
本文位址:
二叉排序樹基本操作
1.儲存結構 二叉鍊錶 include include typedef struct bitnode bitnode,bitree 2.二叉排序樹查詢演算法 遞迴查詢二叉排序樹t中是否存在key status search bitree t,int key,bitree f,bitree p p指向...
二叉排序樹基本操作
二叉排序樹,顧名思義,是一種排列好順序的二叉樹。它的排序規則是 每個結點的左子樹上的值都比它本身的值小,右子樹上的值都比它本身的值大。include include define true 1 define false 0 typedef struct binode binode,bitree in...
二叉排序樹基本操作
題目描述 編寫一棵二叉排序樹,來支援以下 6 種操作 插入 x 數 刪除 x 數 若有多個相同的數,因只刪除乙個 如果 x 不存在則不需要刪除 查詢 x 數的排名 排名定義為比當前數小的數的個數 1 如果 x 不存在則輸出 1 查詢排名為 x 的數 如果 x 大於樹中元素個數,則輸出 1 求 x 的...