• 《Java数据结构》Java树形结构


    树形结构是一层次的嵌套结构。 一个树形结构的外层和内层有相似的结构, 所以这种结构多可以递归的表示。经典数据结构中的各种树形图是一种典型的树形结构:一颗树可以简单的表示为根, 左子树, 右子树。 左子树和右子树又有自己的子树。

    结构图:

    一切尽在代码中:

    import java.util.ArrayList;
    import java.util.List;
    
    public class TreeNode {
        private int age;    // 节点属性,年龄
        private String name;   //节点属性,姓名
    
        TreeNode proTreeNode;    //上级节点
        List<TreeNode> list = new ArrayList<TreeNode>(); //孩子节点
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public TreeNode getProTreeNode() {
            return proTreeNode;
        }
    
        public void setProTreeNode(TreeNode proTreeNode) {
            this.proTreeNode = proTreeNode;
        }
    
        public void addTreeNode(TreeNode treeNode){
            list.add(treeNode);
            treeNode.proTreeNode = this;
        }
    
        public TreeNode getTreeNode(Integer i){
            return list.get(i);
        }
    
        public void removeTreeNode(TreeNode treeNode){
            list.remove(treeNode);
            treeNode.proTreeNode = null;
        }
    
        public String toString(){
            return "姓名:"+name+";年龄:"+age+"。";
        }
    }
    /**
     * 创建一个树结构:
     *
     *           李磊
     *        |         |
     *    韩梅梅       丽丽
     *                   |
     *                 李刚
     */
    public class TreeStructure {
        public static void main(String[] args) {
            TreeNode treeNode0 = new TreeNode();
            treeNode0.setAge(11);
            treeNode0.setName("李磊");
    
            TreeNode treeNode1 = new TreeNode();
            treeNode1.setAge(13);
            treeNode1.setName("韩梅梅");
    
            TreeNode treeNode2 = new TreeNode();
            treeNode2.setAge(15);
            treeNode2.setName("莉莉");
    
            TreeNode treeNode3 = new TreeNode();
            treeNode3.setAge(15);
            treeNode3.setName("李刚");
    
            treeNode0.addTreeNode(treeNode1); //父节点关联孩子节点
            treeNode0.addTreeNode(treeNode2); //父节点关联孩子节点
    
            treeNode2.addTreeNode(treeNode3); //丽丽节点下挂李刚
    
            System.out.println(treeNode1);   //打印节点本身
            System.out.println(treeNode2.getTreeNode(0));  //打印树节点
            System.out.println(treeNode1.getProTreeNode());  //打印父接口
        }
    }

    运行结果:

    This moment will nap, you will have a dream; But this moment study,you will interpret a dream.
  • 相关阅读:
    Text Rendering in the QML Scene Graph
    freetype2文档部分翻译
    一些距离测算方法
    制作交叉工具链
    图像处理链接
    Scene Management scene graph
    Google的九条创新原则
    C#颜色和名称样式对照表【转载】
    sql语句性能优化【转载】
    数据挖掘十大经典算法【转载】
  • 原文地址:https://www.cnblogs.com/jssj/p/11617610.html
Copyright © 2020-2023  润新知