資料結構 二叉查詢樹tree的簡單實現

2021-09-11 10:05:54 字數 1974 閱讀 8717

//二叉樹 要求所有的項都能夠排序,

//所以這裡的 t 需要實現comparable 介面,要可以進行 compareto 比較大小的

public class mybinarytree>

public binarynode(t data, binarynodeleft, binarynoderight)

}//這是 根節點

private binarynoderoot;

public mybinarytree

() public void makeempty

() public boolean isempty

()

/*** 根據對比來獲取是否是有t對應的資料在樹中

*/public boolean contain(t t)

private boolean contains(t t, binarynodenode) else

if (compareto > 0) else

} /**

* 找到最小的 , 就是樹的的最左邊的節點

*/public t findmin

() private binarynodefindmin(binarynodenode)

if (node.left == null)

return findmin(node.left); //這裡遞迴的尋找

}/**

* 找到最大的 , 就是樹的的最右邊的節點 這裡用的是迴圈, 不是遞迴!

*/public t findmax

() private binarynodefindmax(binarynodenode)

while (node.right != null)

return node;

}複製**

/**

* 插入資料的時候,需要以root為開始,進行遍歷對比插入,

* 當第一次插入的時候 root == null , 所以第一次插入需要改變root的變化

* 後面的就是需要 根據比較 node.data 來進行遞迴的將資料放到指定的位置

* 結束是在node == null 的時候 將資料放到左右都為null的node中

*/public void insert(t t)

private binarynodeinsert(t t, binarynodenode)

int compareto = t.compareto(node.data);

if (compareto < 0) else

if (compareto > 0) else

return node;

}複製**

public void remove(t t) 

private binarynoderemove(t t, binarynodenode)

int compareto = t.compareto(node.data);

if (compareto < 0) else

if (compareto > 0) else

if (node.left != null && node.right != null) else

return node;

}複製**

/**

* 遍歷樹

*/public void printtree

() else

}private void printtree(binarynodenode)

}/**

* 獲取樹的高度,也可叫做 深度 。

*/public int height

() private int height(binarynodenode)

複製**

(資料結構)二叉查詢樹

樹,是一種資料結構。它是由n個有限節點組成乙個具有層次關係的集合。特點 樹的基本術語 節點的度 節點擁有的子樹的數目。葉子 度為零的節點。分支節點 度不為零的節點。樹的度 樹中節點的最大的度。層次 根節點的層次為1,其餘節點的層次等於該節點的雙親的層次加1。樹的高度 樹中節點的最大層次。無序樹 如果...

資料結構 二叉查詢樹

使二叉樹成為二叉查詢樹的性質是,對於樹中的每個節點x,它的左子樹中所有關鍵字值小於x的關鍵字值,而它的右子樹中所有關鍵字值大於x的關鍵字值。這意味著,該樹所有的元素以某種統一的方式排序。二叉查詢樹是一棵特殊的二叉樹,二叉查詢樹中節點的結構與二叉樹種節點的結構相同,關鍵在於可以在二叉查詢樹上可以執行的...

資料結構 樹 二叉查詢樹

wiki 首先是名稱 二叉查詢樹英文叫binary search tree,這個在很多演算法題目中很常見所以要記住,特別是英文題目中。也叫做二叉排序樹,二叉搜尋樹等等。具體的定義比較官方,用自己的話說,首先它肯定是二叉樹,其次,當前節點的左子葉元素值比當前節點小,右子葉元素值比當前節點大,所以節點均...