`

算法_求二叉树的深度

 
阅读更多

package com.btm.util;

 

public class Node {

private String name;

private Node leftN;

private Node rightN;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Node getLeftN() {

return leftN;

}

public void setLeftN(Node leftN) {

this.leftN = leftN;

}

public Node getRightN() {

return rightN;

}

public void setRightN(Node rightN) {

this.rightN = rightN;

}

public Node(String name) {

this.name = name;

}

@Override

public String toString() {

return name;

}

}

package com.btm.util;

 

public class BinaryTree {

private Node root;

public BinaryTree() {

root = null;

}

public Node getRoot() {

return root;

}

public void setRoot(Node root) {

this.root = root;

}

public void initTree() {

Node node1 = new Node("a");

Node node2 = new Node("b");

Node node3 = new Node("c");

Node node4 = new Node("d");

Node node5 = new Node("e");

root = node1;

node1.setLeftN(node2);

node2.setRightN(node3);

node1.setRightN(node4);

node3.setLeftN(node5);

}

int length(Node root) {

int depth1;

int depth2;

if (root == null)

return 0;

depth1 = length(root.getRightN());

 

depth2 = length(root.getLeftN());

if (depth1 > depth2)

return depth1 + 1;

else

return depth2 + 1;

}

}

public static void main(String[] args) {

    BinaryTree tree = new BinaryTree();

    tree.initTree();

    System.out.println(tree.length(tree.getRoot()));

    }

分享到:
评论

相关推荐

    二叉树深度_二叉树查询_二叉树深度_

    在实际应用中,二叉树深度的概念不仅用于查询,还广泛应用于其他场景,如平衡二叉树(AVL树、红黑树等)的维护,二叉搜索树的查找效率分析,以及在游戏AI中的路径搜索(如A*算法)等。理解并掌握二叉树的深度计算对...

    非递归前序,中序,后序遍历二叉树(优化算法).rar_nooneyh_二叉树 非递归_前序 中序 后序_树遍历算法_遍历二叉树

    在递归实现这些遍历时,虽然直观但可能导致栈溢出问题,特别是在处理深度较大的二叉树时。因此,非递归的遍历算法成为优化的选择。 非递归前序遍历(Preorder Traversal): 前序遍历的顺序是根节点 -> 左子树 -> ...

    erchashubianli.rar_erchashubianli_二叉树 深度_二叉树遍历_遍历

    总之,二叉树遍历和计算深度是数据结构与算法的基础,它们不仅对理解二叉树至关重要,也是解决许多计算机科学问题的基石。通过深入学习和实践,你可以提高解决问题的能力,并为更高级的算法和数据结构打下坚实基础。

    JPNW.rar_C 二叉树算法_人工智能/神经网络/深度学习

    本压缩包文件“JPNW.rar”包含了与C++编程语言相关的二叉树算法实现,是学习数据结构和算法的宝贵资源,特别是对于那些对人工智能、神经网络或深度学习感兴趣的开发者。 二叉树是一种特殊的图结构,每个节点最多有...

    MiracleYoung#You-are-Pythonista#算法_27_二叉树的深度1

    从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。递归的时候无需判断左右子树是否存在,因为如果该节点为叶节点,它的左右子

    MiracleYoung#You-are-Pythonista#算法_27_二叉树的深度2

    从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。递归的时候无需判断左右子树是否存在,因为如果该节点为叶节点,它的左右子

    求二叉树深度程序谢谢捧场

    根据给定文件的信息,本文将围绕“求二叉树深度”的主题进行展开,详细介绍二叉树的概念、如何构建二叉树、以及如何计算二叉树的深度。 ### 一、二叉树概述 二叉树是一种非常重要的数据结构,在计算机科学领域有着...

    Java二叉树算法实例.zip_java 二叉树_二叉树

    5. **树的其他操作**:除了基本操作外,还有许多其他与二叉树相关的算法,如合并二叉树、查找最近公共祖先、树的深度优先搜索(DFS)和广度优先搜索(BFS)等。 6. **文件内容分析**:虽然压缩包中的"1.txt"和...

    各种二叉树的数据结构.rar_二叉树_二叉树 遍历_实现二叉树的先、中、后序递归遍历算_数据结构_数据结构 算法

    总的来说,这个压缩包提供了关于二叉树数据结构的一些基本操作,包括递归和非递归的先序、中序、后序遍历,以及计算二叉树深度的算法。这些是学习数据结构和算法时不可或缺的部分,对于理解计算机科学的核心概念非常...

    1_寻找二叉树中以x元素为根的子树的深度_

    在二叉树数据结构中,查找特定元素并确定其作为根节点的子树深度是一项重要的操作。这在很多算法和应用中都有所涉及,比如在平衡树调整、搜索效率优化等方面。二叉树是由节点构成的数据结构,每个节点包含一个值、一...

    二叉树求深度

    总结来说,二叉树求深度的关键在于递归地计算每个节点的子树深度,然后比较并返回较大的那个值加1。通过这种方式,可以有效地计算出任意形状的二叉树的深度。在实际编程中,理解并掌握这种递归算法对于处理树形结构...

    求二叉树的深度(后序遍历)

    在解决“求二叉树的深度”这个问题时,我们可以采用不同的方法,这里我们将重点讨论利用后序遍历策略来计算树的深度。 后序遍历是一种对二叉树进行访问的顺序,它的基本规则是:先访问左子树,然后访问右子树,最后...

    求二叉树的深度

    ### 求解二叉树深度 二叉树的深度是指从根节点到最远叶子节点的最长路径上节点的数量。为了求得二叉树的深度,我们可以采用递归的方法。具体步骤如下: 1. **基本情况**:如果当前节点为空,则返回0。 2. **递归...

    erchashu.rar_二叉树 打印_打印二叉树

    在计算机科学中,二叉树的概念广泛应用于数据结构和算法设计中,因为它们提供了一种高效的方式来组织和访问数据。本压缩包文件"erchashu.rar"包含了关于二叉树打印和相关操作的资料,主要涉及以下知识点: 1. **...

    二叉树的遍历与求深度以及结点数

    通过对二叉树的遍历以及求深度和结点数的方法的介绍,我们可以看到,这些算法都是基于递归思想实现的。理解并掌握了这些基本概念和技术之后,可以更深入地研究二叉树的其他高级应用,如平衡二叉树、红黑树等。

    erchashu.rar_二叉树_二叉树遍历_完全遍历_树型结构_树结构

    具体包括建立二叉树、遍历二叉树、求二叉树的深度、求二叉树的叶子结点。其中遍历二叉树包含三种方法:先序遍历、中序遍历与后序遍历,这三种遍历都分别运用了两种不同的算法,即递归算法与非递归算法。最后软件使用...

    二叉树的叶子结点数及深度

    下面详细介绍给出的代码实现,包括定义二叉树结构、构建二叉树、遍历计算叶子结点数以及计算二叉树深度。 ##### 1. 定义二叉树结构 ```c++ struct node { char data; struct node *lchild, *rchild; } bnode; ...

    【课件】5.2.1_1二叉树的定义和基本术语.pdf

    - **完全二叉树**:若一棵二叉树的深度为k,除第k层外,其他各层 (1~k-1) 的节点数都达到最大值,而第k层有节点,但都集中在该层最左边的若干位置上,则称这棵二叉树为完全二叉树。 #### 6. 满二叉树 - **满...

    二叉树的递归算法:建立二叉树、遍历二叉树

    虽然这部分代码片段不完整,但计算二叉树深度的基本思路是通过递归地比较左右子树的深度,并取其中的最大值加一。 通过上述分析,我们深入了解了二叉树的递归算法在创建、遍历以及深度计算等方面的应用,这不仅加深...

    二叉树_二叉树遍历_

    (3)求二叉树的深度、结点数目、叶结点数目;(选做)(4)将二叉树每个结点的左右子树交换位置。(选做)【基本要求】从键盘接受输入(先序),以二叉链表作为存储结构,建立二叉树(以先序来建立)【测试数据】如...

Global site tag (gtag.js) - Google Analytics