2016-05-17 81 views
-1

我的工作我的Java的任務中,我已經從Java數據結構給出了一個問題:計算樹的深度Java數據結構

的問題是: 查找樹的深度,如果節點的總數爲20.

我該如何找到它?誰能幫幫我嗎 ??

+4

我不認爲這個問題在這裏是合適的,原因有兩個:1.不清楚結果應該是什麼樣的,例如,一些數字或一些java代碼。 2.如果你要求幫助做家庭作業,那麼你應該解釋你迄今爲止所做的事情。 個人。我認爲這些作業是有原因的。它可以幫助你,如果你正在考慮它。簡單地學習結果不會削減它。 –

+0

我在學習數據結構時有這個任務。我也沒有任何是否編寫代碼或任何其他...請建議我查找樹的深度代碼,如果節點的數量是 –

回答

2

輸入:

  1. 根節點和節點的結構。它是二叉樹(還是N-ary 樹)?
  2. 總數節點(N),並
    是樹K叉完整的樹(深度= ⌊logk(N)⌋)或全樹(深度= 的logK(N))?

在第一種情況下,可以使用DFS遍歷樹葉的深度(即從根到樹葉的最長路徑的長度)。

在第二種情況下,這只是一項數學工作。

+0

請您詳細說明第一個請 –

+0

瞭解案例1的最佳去處:http://www.geeksforgeeks.org/write-ac-program-to-find-the-maximum-depth-or-height-of- a-tree/ –

+0

另一個要問的重要問題是,「樹是否平衡?」如果在插入項目時有一個搜索樹不是自動平衡的,那麼如果以數字順序(1,2,3,...)插入20個整數,那麼樹的深度將爲20.在這一點上,它只是一個帶有一堆空指針的鏈表。 – dfoverdx

1

是同意,這是很常見的話題要問。

我猜你的情況你的樹型可能是二叉樹,二叉樹有固定的節點結構。正如你在1,2,4,8,16以下看到的那樣。
*
*
* * * *
在你的情況你的樹深度將5.我希望你可以寫很多的邏輯之一。一個簡單的邏輯就是找到輸入數字的二進制表示。對於20,它是10100.二進制表示的長度是二叉樹的長度。該查找樹的深度之前需要

+0

是的先生請回答我,如果你可以 –

+0

你找到任何解決你的問題的答案? –