java資料結構 二叉排序樹的實現

2021-08-28 21:50:41 字數 1929 閱讀 5992

二叉樹查詢樹的定義:

若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值; 若它的右子樹不空,

則右子樹上所有結點的值均大於它的根結點的值; 它的左、右子樹也分別為二叉排序樹。

在自定義的結構中,使用compareto()來對節點和節點的左右子樹進行比較

public class binarysearchtree> 

private binarynode(t ele,binarynodele,binarynoderi)

}//定義根節點

public binarynoderoot;

public binarynodegetroot()

//初始化容器,同時初始化根節點的值

public binarysearchtree(t r)

//使整個樹為空

public void makeempty()

//判斷樹是否為空

public boolean isempty()

//判斷樹是否包含某個元素

public boolean contains(t x)

//判斷指定節點下是否包含某個元素

public boolean contains(t x,binarynodenode)

int comresult = x.compareto(node.element);

if(comresult<0)else if (comresult>0)else

}//樹中尋找值最小的節點

public t findmin()

//指定節點下尋找值最小的節點

public binarynodefindmin(binarynodenode)

else if(node.left==null) else

}//尋找樹中值最大的節點

public binarynodefindmax()else

}//指定節點下尋找值最大的節點

public binarynodefindmax(binarynodenode)else if(node.right==null)else

}//往樹中插入值

public void insert(t x)

//指定節點下插入值,並返回該值插入後所在的節點

public binarynodeinsert(t x,binarynodenode)

int comresult = x.compareto(node.element); //將插入值和節點的值進行比較,確定插入左子樹還是右子樹

if(comresult<0)

node.left = insert(x,node.left); //以左子樹為基礎節點遞迴查詢

if (comresult>0)

node.right=insert(x,node.right);

else //和節點值相等,無操作

;return node;

}//刪除指定節點下的為指定值的節點

public binarynoderemove(t x,binarynodenode)

int comresult = x.compareto(node.element);

if (comresult<0) else if (comresult>0)else if(node.left !=null && node.right !=null) else

return node;

}//遍歷整個樹

public void printalltree()

//輸出指定節點下的所有節點

public void printtree(binarynodenode)

}public static void main(string args)

}

資料結構 二叉排序樹

二叉排序樹是一種特殊結構的二叉樹,它作為一種表的組織手段,通常被稱為 樹表。可以作為一種排序和檢索的手段。定義 二叉排序樹或是空樹,或是具有下述性質的二叉樹 其左子樹上所有結點的資料值均小於根結點的資料值 右子樹上所有結點的資料值均大於或等於根結點的資料值。左子樹和右子樹又各是一棵二叉排序樹。對二叉...

資料結構 二叉排序樹

二叉排序樹 binarysorttree 具有下列性質的二叉樹 1 若左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 2 若右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 3 左 右子樹也分別為二叉排序樹 include includeusing namespace std type...

資料結構 二叉排序樹

如果需要乙個滿足 支援排序性 高效插入 刪除操作 高效查詢的資料結構,怎麼做?先看看一些簡單的資料結構 1 排序順序表 陣列 查詢可以採用折半查詢演算法,時間效率為o log2n 插入 刪除操作的時間複雜度為o n 資料量大時,效率太低。2 排序單鏈表 只能採用順序查詢,時間複雜度為o n 不能採用...