2016-05-17 80 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

你找到任何解决你的问题的答案? –