二叉树的Java实现
2016-05-11 20:55
288 查看
以如图所示的二叉树为例创建二叉树并实现二叉树的遍历(先序遍历、中序遍历、后序遍历)
/** * 部分代码来自于http://ocaicai.iteye.com/blog/1047397 */ public class BinaryTree { /** * 内部类,Node用于存储数据 * @author */ private static class Node{ Node leftChild; Node rightChild; int data; Node(int Data) { leftChild = null; rightChild = null; this.data = Data; } } /** * 创建一个二叉树 * @return */ private static Node createBinaryTree(){ Node node1=new Node(1); Node node2=new Node(2); Node node3=new Node(3); Node node4=new Node(4); node1.leftChild=node2; node1.rightChild=node3; node3.leftChild=node4; return node1; } /** * 先序遍历 * @param node * 结果应该是 1 2 3 4 */ private static void preOrderTraversal(Node node){ if(node==null){ return; } System.out.println(node.data); preOrderTraversal(node.leftChild); preOrderTraversal(node.rightChild); } /** * 中序遍历 * @param node * 结果应该是 2 1 4 3 */ private static void inOrderTraversal(Node node){ if(node==null){ return; } inOrderTraversal(node.leftChild); System.out.println(node.data); inOrderTraversal(node.rightChild); } /** * 后序遍历 * @param node * 结果应该是 2 4 3 1 */ private static void postOrderTraverse(Node node){ if(node==null){ return; } inOrderTraversal(node.leftChild); inOrderTraversal(node.rightChild); System.out.println(node.data); } public static void main(String[] args) { Node node=createBinaryTree(); preOrderTraversal(node); inOrderTraversal(node); postOrderTraverse(node); } }
相关文章推荐
- 最长递增子序列
- 深入理解Java:注解(Annotation)基本概念
- JAVA学习笔记(二)-运算符、选择语句、循环语句
- java线程深度解析(五)——并发模型(生产者-消费者)
- 解决Setting property 'source' to 'org.eclipse.jst.jee.server的问题
- Java基础知识总结
- Java中abstract class和interface的区别
- 4种方法让SpringMVC接收多个对象
- Java语言简介及第一个程序
- [团队项目] Scrum 项目 3.0 SCRUM 流程的步骤2: Spring 计划
- Java编程思想第四版第五章学习(3)
- 生产者消费者模式的一种java实现
- javaweb一些其他内容
- intelj idea cucumber java搭建教程
- [Spring MVC] - SpringMVC的各种参数绑定方式
- java学习笔记(十六)
- 从源码理解Hashtable.java
- 浅谈Struts2
- java---正则表达式应用实例
- java io 流 设计模式