编辑代码

/**
* node节点信息
**/
public class Node<T> {
    private Node<T> parent;
    private Node<T> leftChild;
    private Node<T> rightChild;
    private Node<T> upChild;
    private Node<T> downChild;
    private T data;

    // 构造方法
    public Node() {}
    public Node(T data) {
        this.data = data;
    }

    // Getter方法
    public Node<T> getParent() {
        return parent;
    }

    public Node<T> getLeftChild() {
        return leftChild;
    }

    public Node<T> getUpChild() {
        return upChild;
    }

    public Node<T> getRightChild() {
        return rightChild;
    }

     public Node<T> getDownChild() {
        return downChild;
    }

    public T getData() {
        return data;
    }

    // Setter方法
    public void setParent(Node<T> parent) {
        this.parent = parent;
    }

    public void setLeftChild(Node<T> leftChild) {
        this.leftChild = leftChild;
    }

    public void setRightChild(Node<T> rightChild) {
        this.rightChild = rightChild;
    }

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

    public void setUpChild(Node<T> upChild) {
        this.upChild = upChild;
    }	
    public void setDownChild(Node<T> downChild) {
        this.downChild = downChild;
    }	
    
	class LinkdList<T> {
        private Node<T> head;
        private Node<T> taill;

        public void append(Node<T> data) {
            if(head == null) {
                head = data;
                tail = data;
            } else {
                tail.setRightChild(data);
                data.setLeftChild(tail);
                tail = data;
            }
        }

    }

    public static void main(String[] args) {
        // 创建根节点
        Node<Integer> root = new Node<>(10);
        
        // 创建左子节点
        Node<Integer> leftChild = new Node<>(5);
        leftChild.setParent(root);
        root.setLeftChild(leftChild);
        
        // 创建右子节点
        Node<Integer> rightChild = new Node<>(15);
        rightChild.setParent(root);
        root.setRightChild(rightChild);

        // 创建上子节点
        Node<Integer> upChild = new Node<>(8);
        upChild.setParent(root);
        root.setUpChild(upChild);

        // 创建上子节点
        Node<Integer> downChild = new Node<>(7);
        downChild.setParent(root);
        root.setDownChild(downChild);
        
        // 访问节点数据
        System.out.println("根节点数据: " + root.getData());
        System.out.println("左子节点数据: " + root.getLeftChild().getData());
        System.out.println("右子节点父节点数据: " + rightChild.getParent().getData());
        System.out.println("上子节点数据: " + root.getUpChild().getData());
        System.out.println("下子节点父节点数据: " + downChild.getParent().getData());

    }

}