在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

Java怎么生成树形结构数据

101次阅读
没有评论

共计 1904 个字符,预计需要花费 5 分钟才能阅读完成。

Java 中生成树形结构数据可以使用多种方法,下面列举了两种常用的方法:

方法一:使用递归实现

class TreeNode {int val;
    List<TreeNode> children;

    public TreeNode(int val) {this.val = val;
        this.children = new ArrayList<>();}
}

public class TreeGenerator {public static TreeNode generateTree(int[] nums, int rootIndex) {if (rootIndex >= nums.length) {return null;
        }
        
        TreeNode root = new TreeNode(nums[rootIndex]);
        
        int leftChildIndex = 2 * rootIndex + 1;
        int rightChildIndex = 2 * rootIndex + 2;
        
        root.children.add(generateTree(nums, leftChildIndex));
        root.children.add(generateTree(nums, rightChildIndex));
        
        return root;
    }
    
    public static void main(String[] args) {int[] nums = {1, 2, 3, 4, 5, 6, 7};
        
        TreeNode root = generateTree(nums, 0);
        
        // 打印树的结构 
        printTree(root, 0);
    }
    
    public static void printTree(TreeNode root, int level) {if (root == null) {return;
        }
        
        for (int i = 0; i < level; i++) {System.out.print("\t");
        }
        
        System.out.println(root.val);
        
        for (TreeNode child : root.children) {printTree(child, level + 1);
        }
    }
}

方法二:使用队列实现

class TreeNode {int val;
    List<TreeNode> children;

    public TreeNode(int val) {this.val = val;
        this.children = new ArrayList<>();}
}

public class TreeGenerator {public static TreeNode generateTree(int[] nums) {if (nums.length == 0) {return null;
        }
        
        TreeNode root = new TreeNode(nums[0]);
        Queue<TreeNode> queue = new LinkedList<>();
        queue.offer(root);
        
        int index = 1;
        while (!queue.isEmpty() && index < nums.length) {TreeNode currNode = queue.poll();
            
            // 左孩子 
            if (index < nums.length) {TreeNode leftChild = new TreeNode(nums[index++]);
                currNode.children.add(leftChild);
                queue.offer(leftChild);
            }
            
            // 右孩子 
            if (index < nums.length) {TreeNode rightChild = new TreeNode(nums[index++]);
                currNode.children.add(rightChild);
                queue.offer(rightChild);
            }
        }
        
        return root;
    }
    
    public static void main(String[] args) {int[] nums = {1, 2, 3, 4, 5, 6, 7};
        
        TreeNode root = generateTree(nums);
        
        // 打印树的结构 
        printTree(root, 0);
    }
    
    public static void printTree(TreeNode root, int level) {if (root == null) {return;
        }
        
        for (int i = 0; i < level; i++) {System.out.print("\t");
        }
        
        System.out.println(root.val);
        
        for (TreeNode child : root.children) {printTree(child, level + 1);
        }
    }
}

以上两种方法都可以根据给定的数组生成树形结构数据,并且可以通过递归或者队列的方式进行遍历和打印。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-12发表,共计1904字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 夜夜夜久久久 | 久久乐国产精品亚洲综合 | 无码乱码av天堂一区二区 | 国产av激情久久无码天堂 | 成年人视频在线观看免费 | 免费播放一区二区三区 | 欧美中文在线视频 | 国产美女高清一级a毛片 | 热久久免费视频 | 国产精品久久久久久久久久免费 | 国产成人a v在线影院 | 亚洲成亚洲乱码一二三四区软件 | 无限好资源第一片免费韩国 | 91精品国产闺蜜国产在线闺蜜 | 四虎精品在线视频 | 夜鲁很鲁在线视频 | 国产欧美一区二区三区小说 | 欧美成人免费观看 | 青青在线成人免费视频 | 丁香狠狠色婷婷久久综合 | 亚洲av日韩精品久久久久久久 | 国产精品免费观看视频 | 国产福利视频在线播放 | 深夜释放自己黄瓜视频 | 日韩亚洲欧美一区噜噜噜 | 久久人妻无码一区二区 | 国产精品人人做人人爽人人添 | 看日本黄色大片 | 亚洲高清免费观看 | 国产一区系列在线观看 | 国产成人精品本亚洲 | 精品国产一区二区三区www | 亚洲欧美综合精品成人网站 | 亚洲午夜私人影院在线观看 | 高潮毛片又色又爽免费 | 亚洲精品欧美综合 | 亚洲精品92内射 | 亚洲男人的天堂在线aⅴ视频 | 国产成人精品免费视频 | 成人午夜视频在线 | 欧美一级毛片免费大片 |