Java实现二叉树,以及先序、中序、后序遍历算法的实现

来源:互联网 发布:java框架电子书 编辑:程序博客网 时间:2024/06/01 09:15

1.Node类

public class Node {int val;Node left;Node right;Node(int val){this.val=val;}}

2.BinaryNode类

import java.util.ArrayList;public class BinaryTree {Node root;public BinaryTree(){}public void setRoot(Node root) {this.root=root;}boolean contain(Node root,int x) {boolean res=false;if(root.val==x) {res=true;return res;}if(root.left!=null) {res=contain(root.left,x);if(res==true)return res;}if(root.right!=null) {res=contain(root.right,x);if(res==true)return res;}return res;}/** * 树的先序遍历结果 * @return */    public ArrayList<Integer> preTraversal(Node node) {    ArrayList<Integer> list = new ArrayList<Integer>();    if(node==null) {    return list;    }    list.add(node.val);    list.addAll(preTraversal(node.left));    list.addAll(preTraversal(node.right));    return list;    }    /** * 树的中序遍历结果 * @return */    public ArrayList<Integer> midTraversal(Node node) {    ArrayList<Integer> list = new ArrayList<Integer>();    if(node==null) {    return list;    }    list.addAll(midTraversal(node.left));    list.add(node.val);    list.addAll(midTraversal(node.right));    return list;    }/** * 树的后序遍历结果 * @return */    public ArrayList<Integer> afterTraversal(Node node) {    ArrayList<Integer> list = new ArrayList<Integer>();    if(node==null) {    return list;    }    list.addAll(afterTraversal(node.left));    list.addAll(afterTraversal(node.right));    list.add(node.val);    return list;    }        }


阅读全文
1 0