二叉排序樹的實現與基本操作

2022-10-06 19:06:12 字數 1407 閱讀 8386

二叉排序樹又稱二叉查詢樹。它或者是一顆空樹,或者是具有以下性質的二叉樹:

①如果左子樹不空,那麼左子樹上所有結點的值均小於它的根結點的值;

②如果右子樹不空,那麼右子樹上所有結點的值均大於它的根結點的值;

③左右子樹也分別為二叉排序樹。

以下**實現了:

* 實現二叉排序樹,包括插入、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 的...