当前位置: 首页 > 知识库问答 >
问题:

确定树中的节点是否已满

施洛城
2023-03-14

我试图确定m元树中的所有节点是否都已满。我想我已经大致了解了,但我不确定。以下是我到目前为止所做的。

在我的TreeNode类中,我有以下方法。

    public class TreeNode
    {
       private String label;
       private String message;
       private TreeNode[] nodes;
       private int numChildren;
       private TreeNode parent;
       private String prompt;

           ***other methods and constructors***

      public boolean isFull()
    {
      for(int i = 0; i < numChildren; ++i)
      {
        if(nodes[i] == null)
            return false;
      }
      return true;
    }

其中,Num儿童是数组节点[](或仅nodes.length)中可能的子节点总数,节点[]是当前节点的所有子节点的数组。此外,知道我的TreeNodes是双链接的可能会有所帮助,这样如果需要,我就可以检索当前节点的父节点。

然后,在我的树类中,我有以下递归方法。

    public boolean allNodesFull(TreeNode n)
    {
      boolean allFull = false;
      if(!n.isFull())
      {
        return allFull;
      }
      for (int i = 0; i < n.getNumChildren(); ++i)
      {
        allFull = allNodesFull(n.getChild(i));
      }
      return allFull;
    }

共有1个答案

师冥夜
2023-03-14

还没有测试过,希望您已经准备好测试用例,并告诉我们它是否有效;)

public boolean allNodesFull(TreeNode n) {
  if(!n.isFull()) {
    return false;
  }
  for (int i = 0; i < n.getNumChildren(); ++i) {
    if (!allNodesFull(n.getChild(i))) {
      return false;
    }
  }
  return true;
}
 类似资料:
  • 我正在用python处理树,这就是我试图解决的问题。 我所有的节点都有列表。对于每个父母,通过一次删除一个元素,从父母列表中提取孩子的列表。 假设node1是列表1[1,2,3],我希望node1有3个子项(在本例中),其中每个子项都是通过每次删除一个项从列表1中提取的列表。所以node2=[2,3]node3=[1,3]和node4=[1,2] 我正在使用anytree库,但在复杂节点上找不到足

  • 我对什么是有向图和无向图进行了研究。我的方法是使用DFS算法。我知道当为或节点被访问两次时,这意味着它不是树。我还使用下面的定理来确定一个图是否是一棵树。 我的代码是通过从文件中读取顶点数和边数来初始化的,如下所示 正如您所看到的,每条边与源顶点和目标顶点列在一条线上。顶点从1开始。边是无向的,一旦以最小顶点id开始,将在文件中列出。例如,对于边2-5和5-2,文件将仅具有2-5。 我的问题是,我

  • 我需要检查节点是否是二叉树中的叶子。这是我当前的代码。 它向我发送了一条错误消息:“HW371937.hs:C:\Users\lenovo\Desktop\���\��� HASKELL\hw371937。hs:(22,1)-(25,91):函数isLeaf中的非穷举模式” 我不知道如何递归地检查下一个节点是否是叶子。任何帮助都将受到感谢。

  • 如果我没弄错的话,树通常是一个列表,其中的元素按特定顺序排列。孩子们不在他们自己的子列表中,他们都在同一个列表中。 所以,我试图创建一个Tree类,其中包含TreeNodes(类)使用Tree类中的List。 我如何跟踪父母/孩子/叶子?如果父母“父母1”,有两个孩子“孩子A”和“孩子B”,我如何将他们联系在一起?

  • 如果二叉树是使用递归的bst,我正在尝试编写一个bool函数来返回true,我需要一些关于haskell语法的指导。 我知道要使二叉树成为 bst,左侧子树必须始终仅包含小于头部的节点。并且右侧子树必须始终仅包含大于头部的节点。我正在这样构建我的函数: 但是此代码会导致错误: 无法将预期类型“Bool”与实际类型“Int”匹配 参考

  • 问题内容: 出于某种原因,我的表单不想获取复选框的值…我不确定这是否是我的编码,但是当我尝试输入值时,我得到了结果。我有什么问题? 编辑 我尝试将其更改为此 但是现在它甚至不想。怎么了 问题答案: 将函数放在内部。当执行该行时,主体尚未解析,并且该元素不存在。这工作得很好: