(滿滿的乾貨)java資料結構之二分搜尋樹

2021-09-13 03:50:27 字數 1877 閱讀 9151

/**

* 寫關於樹的操作時還是應該多用遞迴,如樹的遍歷用遞迴寫就方便的多

* 用迴圈則需要使用棧,而同理對於刪除操作則需要刪除下乙個節點時如何

* 將將上乙個節點的下乙個節點為空。

* 你可能會想為什麼不能直接將當前節點為空,因為這只是使得當前的節點為空,

* 而原本生成的物件仍然存在。所以用遞迴可以將其下乙個節點找到賦給當前節點。

*//*

* 相比於鏈式結構樹結構更難於理解一些,但我們要記住不論怎樣修改樹結構,

* 我們是在root這個根節點下進行的,對root進行修改,明白引用與root的含義

*/ public class bst>

}private node root ;

private int size ;

public boolean isempty()

public int getsize()

public void add(e e)

private node add(node node , e e)

if(e.compareto(node.e) > 0) else if(e.compareto(node.e) < 0)

return node ;

}public void preorder()

private void preorder(node node)

}public void inorder()

private void inorder(node node)

}public void postorder()

private void postorder(node node)

}public e minelem()

private node minelem(node node)

return node ;

}public e maxelem()

//此處是while語句

private node maxelem(node node)

return node ;}/*

* 刪除最小值

*/public e removemin()

private node removemin(node node)         

node.left = removemin(node.left) ;

return node ;}/*

* 刪除最大值

*/public e removemax()

private node removemax(node node)

node.right = removemax(node.right) ;

return node ;

}/**

* 刪除任意節點

資料結構之二(hash)

hash表 hash表作為一種動態集合資料結構,一般只支援 插入 查詢 刪除操作 而且每個操作的時間複雜度一般控制在o 1 內。hash表是普通陣列的一種推廣。因為陣列可以在直接通過下標來定位要查詢的元素,時間為o 1 因此hash表目標也是使用一些技術,以達到可以在o 1 的時間內完成操作。嚴格來...

Java資料結構之二叉樹

樹的定義 樹是一種由邊連線著結點的資料結構,資料模型上的樹可以看做是一棵倒掛的樹木,有乙個主幹,下面是枝幹 樹葉。樹的資料結構模型如下 節點 上圖的圓圈,比如a b c d等都是表示節點,節點裡面包含了儲存的資料以及指向其它節點的位址引用。邊 連線節點的線稱為邊,邊表示節點的關聯關係。一般從乙個節點...

資料結構 資料結構之二分查詢

先上 二分查詢,陣列必須為有序的 int binarysearch int key,int a,int length return 1 該函式接受乙個整數鍵和乙個已經有序的int陣列及陣列的大小作為引數。如果該鍵存在於陣列中則返回它的索引,否則返回 1.演算法使用兩個變數lo和hi,並保證如果鍵在陣...