Java中的树实现(根,父母和孩子)

卡洛斯

我需要创建一个树结构,类似于Java中的附加图像。我发现了与此问题有关的一些问题,但没有找到令人信服且解释充分的答案。应用程序业务包括食品超级类别(主菜,甜点和其他)。这些类别中的每个类别都可以具有父项或子项,依此类推。

所需的树结构

乔纳森
import java.util.ArrayList;
import java.util.List;

public class Node<T> {
    private List<Node<T>> children = new ArrayList<Node<T>>();
    private Node<T> parent = null;
    private T data = null;

    public Node(T data) {
        this.data = data;
    }

    public Node(T data, Node<T> parent) {
        this.data = data;
        this.parent = parent;
    }

    public List<Node<T>> getChildren() {
        return children;
    }

    public void setParent(Node<T> parent) {
        parent.addChild(this);
        this.parent = parent;
    }

    public void addChild(T data) {
        Node<T> child = new Node<T>(data);
        child.setParent(this);
        this.children.add(child);
    }

    public void addChild(Node<T> child) {
        child.setParent(this);
        this.children.add(child);
    }

    public T getData() {
        return this.data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public boolean isRoot() {
        return (this.parent == null);
    }

    public boolean isLeaf() {
        return this.children.size == 0;
    }

    public void removeParent() {
        this.parent = null;
    }
}

例:

import java.util.List;

Node<String> parentNode = new Node<String>("Parent"); 
Node<String> childNode1 = new Node<String>("Child 1", parentNode);
Node<String> childNode2 = new Node<String>("Child 2");     

childNode2.setParent(parentNode); 

Node<String> grandchildNode = new Node<String>("Grandchild of parentNode. Child of childNode1", childNode1); 
List<Node<String>> childrenNodes = parentNode.getChildren();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用pg-promise获得父母和孩子的树

来自分类Dev

父母和孩子中的点击事件

来自分类Dev

修改WordPress中父母和孩子的图标

来自分类Dev

Java-编辑父母名单中的孩子

来自分类Dev

如何获取特定父母的孩子(父母ID)并在家谱树中显示输出

来自分类Dev

CQ模板中的“允许的父母和允许的孩子”属性

来自分类常见问题

在父母和孩子的表Laravel中插入行

来自分类Dev

在自参考表中查询父母和孩子

来自分类Dev

在父母和孩子的表Laravel中插入行

来自分类Dev

你如何在laravel eloquent中查询孩子和父母

来自分类Dev

你如何在laravel eloquent中查询孩子和父母

来自分类Dev

实施一棵树,让孩子和父母可以互相参考

来自分类Dev

父母和孩子的订单查询

来自分类Dev

Caliburn.micro 父母->孩子和孩子->父母互动

来自分类Dev

在SwiftUI中从孩子的孩子调用父母的函数

来自分类Dev

MySQL从表中选择父母和孩子

来自分类Dev

SQL查询选择孩子和父母

来自分类Dev

苗条:在父母和孩子之间转移道具

来自分类Dev

Laravel,由父母和孩子获得结果

来自分类Dev

我如何使用班级的父母和孩子?

来自分类Dev

如何从位置获取父母和孩子的ID

来自分类Dev

MySQL按父母和孩子排序

来自分类Dev

结合父母名单和孩子名单

来自分类Dev

获取特定孩子的父母和祖父母

来自分类Dev

让孩子和父母的父母一样宽

来自分类Dev

Java中是否有参数树实现?

来自分类Dev

当父母和孩子都执行exec()时等待孩子

来自分类Dev

使用Java API获取孩子的父母ID

来自分类Dev

Java:不鼓励孩子覆盖父母吗?