java实现二叉树的三种遍历算法(递归)
来源:互联网 发布:淘宝美工修图学校 编辑:程序博客网 时间:2024/05/15 07:10
一,定义一个节点类:
package test;public class Node {private int data;private Node left;private Node right;public Node(int data) {this.data = data;}public int getData() {return data;}public void setData(int data) {this.data = data;}public Node getLeft() {return left;}public void setLeft(Node left) {this.left = left;}public Node getRight() {return right;}public void setRight(Node right) {this.right = right;}}
二,定义一个算法实现类:
package test;public class FindTree {private void visit(int data) {System.out.print(data+"--");}public void preOrder(Node root) {if(root == null) {return;}visit(root.getData());preOrder(root.getLeft());preOrder(root.getRight());}public void inOrder(Node root) {if(root == null) {return;}inOrder(root.getLeft());visit(root.getData());inOrder(root.getRight());}public void afterOrder(Node root) {if(root == null) {return;}afterOrder(root.getLeft());afterOrder(root.getRight());visit(root.getData());}}
三,构建一个二叉树
package test;public class TestTree {public static void main(String[] args) {FindTree ft = new FindTree();int[] array = {12,76,35,22,16,48,90,46,9,40};int j = 0;Node root = new Node(array[j]);for(int i = 1; i< array.length; i++) {insert(root, array[i]);}System.out.println("preorder----------------------------------");ft.preOrder(root);System.out.println("inorder----------------------------------");ft.inOrder(root);System.out.println("afterorder----------------------------------");ft.afterOrder(root);}private static void insert(Node root, int data) { //二叉树中左边的孩子节点小于父节点,右边的孩子节点大于父节点if(root.getData() < data) {if(root.getRight() == null) {root.setRight(new Node(data));} else {insert(root.getRight(), data);}} else {if(root.getLeft() == null) {root.setLeft(new Node(data));} else {insert(root.getLeft(), data);}}} }
四,打印结果:
preorder----------------------------------
12--9--76--35--22--16--48--46--40--90--
inorder----------------------------------
9--12--16--22--35--40--46--48--76--90--
afterorder----------------------------------
9--16--22--40--46--48--35--90--76--12--
0 0
- java实现二叉树的三种遍历算法(递归)
- java实现二叉树的三种遍历算法(递归)
- 二叉树(二)——三种遍历算法的非递归实现(java版)
- 二叉树(一)——二叉树的构造及三种遍历算法的递归实现(java版)
- java使用递归,非递归方式实现二叉树的三种常见遍历方式
- java使用递归,非递归方式实现二叉树的三种常见遍历方式
- c语言实现顺序二叉树的非递归的三种遍历算法
- 二叉树的构建和三种遍历算法 (递归实现)
- 二叉树的三种遍历的非递归实现
- 二叉树的三种遍历的非递归实现
- 三种二叉树遍历的非递归实现
- 二叉树的三种递归遍历实现
- 递归实现二叉树的三种遍历
- 递归实现二叉树的三种遍历
- 二叉树的三种遍历非递归实现
- JAVA语言实现二叉树的层次遍历的非递归算法及递归算法。
- JAVA语言实现二叉树的层次遍历的非递归算法及递归算法
- Java实现二叉树的建立以及三种递归遍历
- xcode6和ios 8,定位失败解决办法
- WPF TreeView的TreeViewItem查找
- WindowManager使用FLAG_NOT_TOUCH_MODAL后Listview和Editext输入法无响应
- <!DOCTYPE> 有啥用
- Android横竖屏切换不重新调用onCreate()
- java实现二叉树的三种遍历算法(递归)
- 如何截取字符串,使其在浏览器上显示相同长度?
- 通过WebRTC实现实时视频通信(一)
- 用exp无法导出空表解决方法
- source命令用法:
- 多种jQuery插件
- Ubuntu 新手常见问题与解答
- IMSI
- [LeetCode]Jump Game II