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()));
}
相关推荐
按先序扩展序列建立二叉树,先序、中序、后序遍历的递归算法,二叉树遍历的非递归算法,层次的非递归算法,求二叉树的深度。
从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。递归的时候无需判断左右子树是否存在,因为如果该节点为叶节点,它的左右子
从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。递归的时候无需判断左右子树是否存在,因为如果该节点为叶节点,它的左右子
用C++编的关于二叉树的一些内容,学数据结构必用到,算法设计
具体包括建立二叉树、遍历二叉树、求二叉树的深度、求二叉树的叶子结点。其中遍历二叉树包含三种方法:先序遍历、中序遍历与后序遍历,这三种遍历都分别运用了两种不同的算法,即递归算法与非递归算法。最后软件使用...
按先序遍历的扩展序列建立二叉树的二叉链表存储结构,实现二叉树先序、中序、后序遍历的递归算法,实现二叉树中序遍历的非递归算法,实现二叉树层次遍历的非递归算法,求二叉树的结点个数,求二叉树的深度。
(3)求二叉树的深度、结点数目、叶结点数目;(选做)(4)将二叉树每个结点的左右子树交换位置。(选做)【基本要求】从键盘接受输入(先序),以二叉链表作为存储结构,建立二叉树(以先序来建立)【测试数据】如...
【算法面试题】求二叉树的最大深度
C语言二叉树遍历前序非递归算法,简单易懂,正确无误
C数据结构,能够进行二叉树的深度广度查询。数据结构基础作业
算法笔记,二叉树的最大深度
16_二叉树的最小深度.pdf
完整的计算C++二叉树叶子结点数及深度的程序,希望能帮到大家。
二叉树遍历算法应用各种算法包括遍历创建求深度等
数据结构课程设计 1. 创建二叉树的链表存储结构;...6. 求二叉树的深度。 7. 设计一个算法,求二叉树中指定结点x的层数。 8. 设计一算法,求先序遍历序列中第k个结点的左右孩子。 9. 求结点x的所有祖先。
1.创建二叉树的链表存储结构; 2.实现二叉链表的初始化算法、...6.求二叉树的深度。 7.设计一个算法,求二叉树中指定结点x的层数。 8.设计一算法,求先序遍历序列中第k个结点的左右孩子。 9.求结点x的所有祖先。
一、实验目的 1.掌握构造二叉链表树的算法。 2.掌握遍历二叉树的四种(先序、中序、后序、层序)算法(递归和非递归)算法。 3.掌握基于先序遍历...6、编写递归算法,求二叉树中以元素值为x的结点为根的子树的深度。
2. 按先序、中序和后序遍历二叉树(递归算法)。 3. 按某种形式输出整棵二叉树。 4. 求二叉树的高度。 5. 求二叉树的叶结点个数。 6. 交换二叉树的左右子树。 7. 借助队列实现二叉树的层次遍历。 8. 在主函数...
按先序扩展序列建立二叉树 先序、中序、后序遍历的递归算法 中序遍历的非递归算法 先序遍历的非递归算法 后序遍历的非递归算法 层次的非递归算法 求二叉树的深度(后序遍历)
6. 求二叉树的深度。 7. 设计一个算法,求二叉树中指定结点x的层数。 8. 设计一算法,求先序遍历序列中第k个结点的左右孩子。 9. 求结点x的所有祖先。 10.输出所有叶子结点到根结点的路径。 11.如果将二叉树中左...