[英]How are nodes in binary search tree stored in java? and other questions related
從數組的聲明來看,你正在構建的是一個二叉堆——一種專門的基於樹的數據結構,它通常存儲在一個數組中。 與依賴顯式引用的樹結構不同,堆依賴於一種巧妙的索引方案,將樹“打包”成線性數據結構。
Comparable
接口允許您構建一個可以存儲任意類數據的堆,只要它們實現Comparable
接口即可。 這很有用,因為您可以構建使用數字、字符串或您自己類型的對象的可重用代碼。
如果有多個節點級別,您如何知道下一步要轉到哪個節點?
如果一個節點位於索引n
,它的兩個子節點將位於索引 2n + 1 和 2n + 2 處。如果您位於索引k
並且想要跟隨左子樹,則設置k = 2*k+1
; 如果要遵循右子樹,請設置k = 2*k+2
。 繼續遵循相同的算法,直到在intHeap
數組中遇到null
元素。
你需要通過一個很好的教程。只是給你提個醒,節點會像這樣
Class Node
{
int data;//ideally should be generic.
Node leftChild;
Node rightChild;
...
}
推薦您訪問二叉搜索樹-Java實現
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.