JAVA 实现二叉树 递归
来源:互联网 发布:学生购买阿里云服务器 编辑:程序博客网 时间:2024/05/29 10:22
public class CreatBiTree {/* * 题目:①用Java代码模拟实现一个二叉树结构②创建该二叉树③遍历该二叉树。 * * 思路:二叉树:一种树状结构,一棵二叉树的“结点”(Node)最多只能拥有2个子结点,也就是度小于或等于2。 * 1)二叉树的结点个数是有限,而且可以没有结点。 * 2)一棵二叉树的树根下可以分为两个子树称为“左子树”(Left Subtree)和“右子树”(Right Subtree) * 3)前、中、后序遍历。 */private Node root;/* * 创建二叉树节点,利用内部类方式。 * @author lhy */private class Node{private Node left;//定义左节点private Node right;//定义右节点private int value;//节点值。public Node(int value){this.left = null;this.right = null;this.value = value;}}public CreatBiTree(){root = null;}/* * 递归创建二叉树,不过多解释了,直接上代码。 */public void buildTree(Node node,int value){if(root == null){root = new Node(value);}else{if(value < node.value){if(node.left == null){node.left = new Node(value);}else{buildTree(node.left,value);}}else{if(node.right == null){node.right = new Node(value);}else{buildTree(node.right,value);}}}}/* * 前序遍历也称先序遍历。 */public void preOrder(Node node){if(node != null){System.out.print(node.value+" ");preOrder(node.left);preOrder(node.right);}}/* * 中序遍历 */public void inOrder(Node node){if(node != null){inOrder(node.left);System.out.print(node.value+" ");inOrder(node.right);}}/* * 后序遍历 */public void postOrder(Node node){if(node != null){postOrder(node.left);postOrder(node.right);System.out.print(node.value+" ");}}public static void main(String[] args) {int[] a = {1,2,3,4,5,6,7,8,9,10,11,12,13,14};CreatBiTree bTree = new CreatBiTree();for (int i = 0; i < a.length; i++) {bTree.buildTree(bTree.root, a[i]);}System.out.println("先序遍历的结果是:");bTree.preOrder(bTree.root);System.out.println("\n中序遍历的结果是:");bTree.inOrder(bTree.root);System.out.println("\n后序遍历的结果是:");bTree.postOrder(bTree.root);}}
0 0
- java 递归实现二叉树
- 递归实现二叉树 JAVA
- JAVA 实现二叉树 递归
- java 实现二叉树【递归/非递归】
- 递归创建二叉树 java实现
- 递归实现二叉树遍历JAVA
- 非递归遍历二叉树--java实现
- 二叉树的递归遍历----java实现
- 二叉树非递归遍历Java实现
- Java实现二叉树的递归与非递归遍历
- Java递归、非递归实现二叉树遍历
- Java实现二叉树的创建、递归/非递归遍历
- Java实现二叉树遍历(递归,非递归)
- 二叉树的递归和非递归实现 java
- Java实现二叉树的递归、非递归遍历
- JAVA实现二叉树及递归遍历二叉树
- 递归实现二叉树
- 二叉树,递归实现
- 【算法小总结】Prim算法与Kruskal算法探索
- C#的程序脱离framework
- js和C# 判断时间段内早中晚问候语
- 1.8-s2是否是s1的rotation(调用一次isSubstring)
- 原形设计の学习笔记(一)
- JAVA 实现二叉树 递归
- Android异步消息处理机制完全解析,带你从源码的角度彻底理解
- acdream--Matrix sum
- 关于内存映射来修改文件,并改变文件的大小
- SQL Error: 17059, SQLState: 99999 错误原因
- Codeforces #259 (Div. 2) B. Little Pony and Sort by Shift
- jordan shoes discount options is beneficial
- [水]ZOJ1016
- hdu1201-18岁生日