【问题标题】:Calculate tree depth Java Data Structures计算树深度 Java 数据结构
【发布时间】:2016-09-13 20:02:27
【问题描述】:

我正在处理我的 java 作业,其中我从 java 数据结构中提出了一个问题:

问题是: 如果节点总数为 20,则求树的深度。

我怎样才能找到这个?谁能帮帮我??

【问题讨论】:

  • 我认为这个问题在这里不合适,原因有两个:1. 不清楚结果应该是什么样子,例如一个数字或一些java代码。 2. 如果你寻求家庭作业的帮助,那么你应该解释你到目前为止所做的事情。亲身。我认为这些家庭作业是有原因的。如果您正在考虑它,它会对您有所帮助。简单地学习结果并不能解决问题。
  • 我在学习数据结构时有这个任务。我也没有任何是否要编写代码或其他任何东西...如果给定节点数,请建议我查找树深度的代码

标签: java


【解决方案1】:

在找到树的深度之前需要的输入:

  1. 根节点和节点结构。它是二叉树(还是 N-ary 树)?
  2. 节点总数(n),而
    是树K-ary complete-tree(depth = ⌊logk(n)⌋)还是full-tree(depth = logk(n))?

在第一种情况下,您可以使用 DFS 遍历到叶子并找到树的深度(即从根到叶子的最长路径的长度)。

在第二种情况下,它只是一个数学作业。

【讨论】:

  • 请您详细说明第一个
  • 了解案例 1 的最佳地点:geeksforgeeks.org/…
  • 另一个重要的问题是,“树平衡了吗?”如果您有一个在插入项目时没有自动平衡的搜索树,如果您按数字顺序(1、2、3、...)插入 20 个整数,那么您的树的深度将为 20。此时它只是带有一堆空指针的链表。
【解决方案2】:

不知道与此问题相关的课程或课程的任何详细信息。遍历树并计算深度将是基本答案。这是一个相关的主题。

How to calculate the depth of a binary search tree

【讨论】:

    【解决方案3】:

    是的,同意,这是一个很常见的话题。

    我猜,你的情况你的树类型可能是二叉树,二叉树有固定的节点结构。如您在下面看到的 1,2,4,8,16。
    *
    * *
    * * * *
    在您的情况下,您的树深度将为 5。我希望您可以编写许多逻辑之一。一种简单的逻辑是找到输入数字的二进制表示。对于 20 是 10100。二进制表示的长度是二叉树的长度。

    【讨论】:

    • 是的先生,如果可以的话请回答我
    • 您找到解决问题的答案了吗?
    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多