簡體   English   中英

二叉搜索樹中的節點如何存儲在java中? 和其他相關問題

[英]How are nodes in binary search tree stored in java? and other questions related

我正在嘗試實現二叉搜索樹。 但我不明白它們將如何存儲在數組中。 這是我存儲它的數據結構:

private Comparable[] intHeap;

我仍然不確定如何使用可比性,請有人解釋這種數據結構的用法嗎?

我將如何檢查二叉搜索樹的最大和最小元素?

如果我有以下樹,它會以 1,3,4,6,7,8,10,13,14 的形式存儲在 intHeap 中嗎?

如果有多個節點級別,您如何知道下一步要轉到哪個節點?

二叉搜索樹

先感謝您。

從數組的聲明來看,你正在構建的是一個二叉堆——一種專門的基於樹的數據結構,它通常存儲在一個數組中。 與依賴顯式引用的樹結構不同,堆依賴於一種巧妙的索引方案,將樹“打包”成線性數據結構。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM