树节点定义:class TreeNode {public TreeNode left;public TreeNode right;public int value;public TreeNode(TreeNode left, TreeNode right, int value) {this.left = left;this.right = right;this.value = value;}
}二叉树及其操作:public class BinaryTree {public static int getTreeHeight(TreeNode root) {if (root == null)return 0;if (root.left == null && root.right == null)return 1;return 1 + Math.max(getTreeHeight(root.left), getTreeHeight(root.right));}public static void recursePreOrder(TreeNode root) {if (root == null)return;System.out.println(root.value);if (root.left != null)recursePreOrder(root.left);if (root.right != null)recursePreOrder(root.right);}public static void stackPreOrder(TreeNode root) {Stack stack = new Stack();if (root == null)return;stack.push(root);System.out.println(root.value);TreeNode temp = root.left;while (temp != null) {stack.push(temp);System.out.println(temp.value);temp = temp.left;}temp = (TreeNode) stack.pop();while (temp != null) {temp = temp.right;while (temp != null) {stack.push(temp);System.out.println(temp.value);temp = temp.left;}if (stack.empty())break;temp = (TreeNode) stack.pop();}}public static void recurseInOrder(TreeNode root) {if (root == null)return;if (root.left != null)recurseInOrder(root.left);System.out.println(root.value);if (root.right != null)recurseInOrder(root.right);}public static void stackInOrder(TreeNode root) {Stack stack = new Stack();if (root == null)return;elsestack.push(root);TreeNode temp = root.left;while (temp != null) {stack.push(temp);temp = temp.left;}temp = (TreeNode) stack.pop();while (temp != null) {System.out.println(temp.value);temp = temp.right;while (temp != null) {stack.push(temp);temp = temp.left;}if (stack.empty())break;temp = (TreeNode) stack.pop();}}public static void main(String[] args) {TreeNode node1 = new TreeNode(null, null, 1);TreeNode node2 = new TreeNode(null, node1, 2);TreeNode node3 = new TreeNode(null, null, 3);TreeNode node4 = new TreeNode(node2, node3, 4);TreeNode node5 = new TreeNode(null, null, 5);TreeNode root = new TreeNode(node4, node5, 0);System.out.println("Tree Height is " + getTreeHeight(root));System.out.println("Recurse In Order Traverse");recurseInOrder(root);System.out.println("Stack In Order Traverse");stackInOrder(root);System.out.println("Recurse Pre Order Traverse");recursePreOrder(root);System.out.println("Stack Pre Order Traverse");stackPreOrder(root);}
}用LinkedList重写的Stack:import java.util.EmptyStackException;
import java.util.LinkedList;public class Stack {private LinkedList list;public Stack() {this.list = new LinkedList();}public boolean empty() {return list.isEmpty();}public Object peek() {if (empty())throw new EmptyStackException();return list.getLast();}public Object pop() {if (empty())throw new EmptyStackException();return list.removeLast();}public void push(Object o) {list.add(o);}public static void main(String[] args) {Stack stack = new Stack();stack.push(new Integer(1));stack.push(new Integer(11));stack.push(new Integer(1111));stack.push(new Integer(22));stack.push(new Integer(222));stack.push(new Integer(31));stack.push(new Integer(221));while (!stack.empty()) {System.out.println(stack.pop());}}
}

员工对象(包括姓名,账号,性别,年龄)这几个属性
有形如下的人员组织:
A
  / \
  B C
  / \ / \
  D E F G
  / \
  H I
1.请用程序数据结构描述出来,组织结构中的人员用
  员工对象表示.
2.编写一个方法,实现输入任何一个人员,按层次打印
  出自己及其所有下属.
 如输入B:打印出:
  B
  -D
  --H
  --I

-E

java二叉树的运用相关推荐

  1. Java二叉树(递归实现)

    Java二叉树 1.二叉树的创建. 2.二叉树的先序,中序,后序,层序遍历. 3.求二叉树的节点个数. 4.求二叉树的高度. 5.打印二叉树第K层元素. 6.求其第K层元素个数. 1.二叉树的创建 p ...

  2. Java 二叉树基础概念(递归迭代)

    目录 1. 树型结构 1.1概念 1.2 概念(重要) 2. 二叉树(重点) 2.1 概念 2.2 二叉树的基本形态 2.3 两种特殊的二叉树 2.4 二叉树的性质 a.满二叉树 b.完全二叉树 2. ...

  3. Java 二叉树后序遍历(递归/非递归)

    Java 二叉树后序遍历(递归/非递归) 简介: 遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访问一次,而且只被访问一次. 设L.D.R分 ...

  4. java 二叉树的实现以及前序、中序、后续遍历实现

    目录 前言 完全二叉树 完全二叉树实现代码 测试 输出 前言 二叉树是n个有限元素的集合,该集合或者为空.或者由一个称为根(root)的元素及两个不相交的.被分别称为左子树和右子树的二叉树组成,是有序 ...

  5. Java二叉树的前中后序遍历

    Java二叉树的前中后序遍历 1.前序遍历 1.1前序遍历概念 1.2前序遍历习题 2.中序遍历 2.1中序遍历概念 2.2中序遍历习题 3.后续遍历 3.1后序遍历概念 3.2后序遍历习题 大家好, ...

  6. Java 二叉树中序遍历(递归/非递归)

    Java 二叉树中序遍历(递归/非递归) 中序遍历 代码实现 递归方式 非递归方式 简介: 遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访 ...

  7. Java二叉树的构建与遍历

    一.二叉排序树定义 1.二叉排序树的定义 二叉排序树(Binary Sort Tree)又称二叉查找(搜索)树(Binary Search Tree).其定义为:二叉排序树或者是空树,或者是满足如下性 ...

  8. java 二叉树的高度_Java实现二叉树的建立、计算高度与递归输出操作示例

    本文实例讲述了java实现二叉树的建立.计算高度与递归输出操作.分享给大家供大家参考,具体如下: 1. 建立 递归输出 计算高度 前中后三种非递归输出 public class Tree_Link { ...

  9. java二叉树的实现_二叉树的实现(Java语言描述)

    实现二叉树 并先序遍历之. package 二叉树的实现; public class BinaryTree { class Node { int value; // 该节点存储的值. Node lef ...

最新文章

  1. AI算法领域常用的39个术语(下)
  2. bootstrap缩小后div互相叠加_纯 JS 实现放大缩小拖拽踩坑之旅
  3. layer的删除询问框的使用
  4. micropython固件源码_Micropython加速物联网开发7 - Micropython源码编译与固件更新
  5. jsp页面如何通过href跳转到另一个jsp
  6. 计算机维修需要工具,小200个电脑维护工具,都能去开个维修店了
  7. tensorflow出现问题Passing (type, 1) or 1type as a synonym of type is deprecated
  8. php家族族谱代码,家族族谱系统设计.doc
  9. 【ESP8266】 ESP8266与LittleFS文件系统
  10. 新颖的_基于web的毕业设计题目50例
  11. DataNode引用计数磁盘选择策略
  12. 为什么Excel2016在SharePoint打开file时显示Read Only?
  13. 这样的也可以发.....
  14. mcc_generated_files/eusart1.c:208:: error: (1098) conflicting declarations for variable “
  15. 影视账号涨粉10w,反套路营销获赞百万,小红内容趋势是什么?
  16. 栈和队列的区别与栈和堆的区别
  17. python学习-Dya13-函数
  18. 如何提高条形码识别率
  19. 灵遁者:突破思维局限去思考时间和维度
  20. 关于img标签中的alt和title属性作用的说明

热门文章

  1. 忠告:不要在愚蠢时间写代码
  2. IBM X3650 M3服务器上RAID配置实战
  3. vsftpd 默认配置文件
  4. 如何保护企业网络免受勒索软件攻击 Vecloud微云
  5. mysql sql left right inner join区别及效率比较
  6. MVC初级知识之五——MVCHtmlHelper使用
  7. NSArray利用Cocoa框架进行汉字排序
  8. 完全背包问题 POJ1384
  9. java心得---java语言基础
  10. 马斯克:人脑“带宽”有限,需要用人工智能加持提高连接速度