JAVA遍历二叉树
来源:互联网 发布:淘宝怎么和快递合作 编辑:程序博客网 时间:2024/05/16 12:09
二叉树的概念
二叉树(Binary Tree)是个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个结点。
现在我们给出一组二叉树
二叉树遍历又分为先序遍历(根节点-左子树 -右子树 )、中序遍历(左子树 -根节点-右子树)、后序遍历(左子树-右子树-根节点)
上述二叉树的先中后遍历结果分别为
先序遍历:12---9---76---35---22---16---48---46---40---90
中序遍历:9---12---16---22---35---40---46---48---76---90
后序遍历:9---16---22---40---46---48---35---90---76---12
首先我们定义一个二叉树数据结构的类
<pre name="code" class="java">class Node {int data; // 根节点数据Node left; // 左子树Node right; // 右子树public Node(int data) // 实例化二叉树类{this.data = data;left = null;right = null;}//{ 12, 76, 35, 22, 16, 48, 90, 46, 9, 40};public void insert(Node root, int data) { // 向二叉树中插入子节点if (data > root.data) // 二叉树的左节点都比根节点小{if (root.right == null) {root.right = new Node(data);} else{this.insert(root.right, data);}} else { // 二叉树的右节点都比根节点大if (root.left == null) {root.left = new Node(data);} else {this.insert(root.left, data);}}}}
遍历二叉树
<pre name="code" class="java">public class BinaryTree {public static void preOrder(Node root) {if (root != null) {System.out.print(root.data + "-");preOrder(root.left);preOrder(root.right);}}public static void inOrder(Node root) {if (root != null) {inOrder(root.left);System.out.print(root.data + "--");inOrder(root.right);}}public static void postOrder(Node root) {if (root != null) {postOrder(root.left);postOrder(root.right);System.out.print(root.data + "---");}}public static void main(String[] str) {int[] array = { 12, 76, 35, 22, 16, 48, 90, 46, 9, 40 };Node root = new Node(array[0]); // 创建二叉树for (int i = 1; i < array.length; i++) {root.insert(root, array[i]); // 向二叉树中插入数据}System.out.println("先序遍历:");preOrder(root);System.out.println();System.out.println("中序遍历:");inOrder(root);System.out.println();System.out.println("后序遍历:");postOrder(root);}}
打印结果:
先序遍历:
12-9-76-35-22-16-48-46-40-90-
中序遍历:
9--12--16--22--35--40--46--48--76--90--
后序遍历:
9---16---22---40---46---48---35---90---76---12---
0 0
- java二叉树遍历
- Java 二叉树遍历
- java遍历二叉树
- JAVA 二叉树遍历
- java 二叉树遍历
- JAVA遍历二叉树
- JAVA遍历二叉树
- 二叉树java遍历
- Java二叉树遍历
- JAVA 二叉树遍历
- Java二叉树遍历
- 二叉树遍历 java
- java实现 二叉树遍历
- Java 遍历二叉树(前中后序)
- java 二叉树的遍历
- 二叉树层次遍历java
- Java创建/遍历二叉树
- Java 二叉树创建遍历
- 汇总一些本人在开发中比较常用的开源库
- 残缺棋盘 android实现颜色填充
- 分配排序之--桶排序,基数排序
- CodeForces 611C New Year and Domino
- Spark中组件Mllib的学习9之ALS训练的model来预测数据的准确率研究
- JAVA遍历二叉树
- bash 复合命令
- docker 学习笔记---如何将docker 镜像上传到docker hub仓库
- 大数相加
- SDOI2016R2(怎么可能是解题报告)
- HDU1728 逃离迷宫BFS
- Eclipse报错:An internal error has occurred. Widget is disposed
- Focusky窗口大小怎么设置
- Logstash收集Syslog日志