【问题标题】:Java n-node treeJava n 节点树
【发布时间】:2015-03-27 09:02:51
【问题描述】:

我正在尝试为下图编写 Java 代码。哪里,

如果 node:4 将创建以下单独的 4 棵树。

中的节点数
LEVEL1 (yellow) : 1 node
LEVEL2 (green) : n-1 node
LEVEL3 (blue) : n-2 node

查看节点的图像:4

如果 node : 5 则另一种方式,

LEVEL1 (yellow) : 1 node
LEVEL2 (green) : n-1 node
LEVEL3 (blue) : n-2 node

查看节点的图像:5

等等。提前感谢您的帮助。

【问题讨论】:

  • 你介意展示你的一些代码吗?
  • 至少张贴您正在谈论的图像。
  • 请更具体地了解所需的结果。在每棵树中,对于每一层,必须比上一层的节点少一个节点,并且允许的节点标签是可以在连接组件的根路径上找到的节点标签?总共有 3 个关卡吗?
  • 是的,总是三个级别。

标签: java xml algorithm tree


【解决方案1】:

这里重要的是如何解决。 从自上而下开始,找出逻辑。

List<Tree> makeTrees(int n) {
    List<Tree> trees = new ArrayList<>();

    for (int i = 0; i < n; ++i) {
        Tree tree = makeYellow(n, i);
        trees.add(tree);
    }
    return trees;
}

private Tree makeYellow(int n, int yellow) {
    Tree tree = new Tree();
    Node node = new Node(yellow, Color.YELLOW);
    tree.add(node);
    for (int i = 0; i < n; ++i) {
        if (i != yellow) {
            Node green = makeGreen(n, yellow, i);
            node.add(green);
        }
    }
    return tree;
}

等等。

如您所见,在黄色节点的顶部,一个简单的就足够了。 期待进一步的解决方案,而不是已经详细解决所有问题,致电 makeGreen 并确定它应该返回什么以及它需要什么信息。

尝试寻找模式。

这样的作业最好自己完成,以训练解决这些难题,并获得精神上的奖励。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多