/**
* Created by apple on 16/6/18.
* 生成默认的二叉树,初始化
*/publicclassBinaryTree {private BinaryTreeNode root;
/**
* A
* / \
* B C
* / \ / \
* D E F G
* / / \
* H I J
*/publicBinaryTree() {
BinaryTreeNode node3_0 = new BinaryTreeNode("H");
BinaryTreeNode node3_1 = new BinaryTreeNode("I");
BinaryTreeNode node3_2 = new BinaryTreeNode("J");
BinaryTreeNode node2_0 = new BinaryTreeNode("D");
BinaryTreeNode node2_1 = new BinaryTreeNode(node3_0, null, "E");
BinaryTreeNode node2_2 = new BinaryTreeNode(node3_1, node3_2, "F");
BinaryTreeNode node2_3 = new BinaryTreeNode("G");
BinaryTreeNode node1_0 = new BinaryTreeNode(node2_0, node2_1, "B");
BinaryTreeNode node1_1 = new BinaryTreeNode(node2_2, node2_3, "C");
root = new BinaryTreeNode(node1_0, node1_1, "A");
}
public BinaryTreeNode getRoot() {
return root;
}
}
##### BinaryTreeSearch.java
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
/**
* Created by apple on 16/6/18.
*/publicclassBinaryTreeSearch {publicstaticvoidBFS(BinaryTree tree) {
Queue<BinaryTreeNode> openQueue = new LinkedList<>();
Queue<BinaryTreeNode> closeQueue = new LinkedList<>();
openQueue.add(tree.getRoot());
while (openQueue.size() > 0) {
if (openQueue.peek().getLeftNode() != null) {
openQueue.add(openQueue.peek().getLeftNode());
}
if (openQueue.peek().getRightNode() != null) {
openQueue.add(openQueue.peek().getRightNode());
}
System.out.print(openQueue.peek().getRoot());
closeQueue.add(openQueue.poll());
}
System.out.println();
}
publicstaticvoidDFS (BinaryTree tree) {
Stack<BinaryTreeNode> openStack = new Stack<>();
Stack<BinaryTreeNode> closeStack = new Stack<>();
openStack.add(tree.getRoot());
while (openStack.size() > 0) {
closeStack.add(openStack.pop());
System.out.print(closeStack.peek().getRoot());
if (closeStack.peek().getRightNode() != null) {
openStack.add(closeStack.peek().getRightNode());
}
if (closeStack.peek().getLeftNode() != null) {
openStack.add(closeStack.peek().getLeftNode());
}
}
System.out.println();
}
}
##### Hello.java
/**
* Created by apple on 16/6/13.
*/publicclassHello {publicstaticvoidmain(String[] args) {
BinaryTree tree = new BinaryTree();
System.out.println("BFS");
BinaryTreeSearch.BFS(tree);
System.out.println("DFS");
BinaryTreeSearch.DFS(tree);
}
}
/**
* Created by apple on 16/6/18.
* 生成默认的二叉树,初始化
*/publicclassBinaryTree {private BinaryTreeNode root;
/**
* A
* / \
* B C
* / \ / \
* D E F G
* / / \
* H I J
*/publicBinaryTree() {
BinaryTreeNode node3_0 = new BinaryTreeNode("H");
BinaryTreeNode node3_1 = new BinaryTreeNode("I");
BinaryTreeNode node3_2 = new BinaryTreeNode("J");
BinaryTreeNode node2_0 = new BinaryTreeNode("D");
BinaryTreeNode node2_1 = new BinaryTreeNode(node3_0, null, "E");
BinaryTreeNode node2_2 = new BinaryTreeNode(node3_1, node3_2, "F");
BinaryTreeNode node2_3 = new BinaryTreeNode("G");
BinaryTreeNode node1_0 = new BinaryTreeNode(node2_0, node2_1, "B");
BinaryTreeNode node1_1 = new BinaryTreeNode(node2_2, node2_3, "C");
root = new BinaryTreeNode(node1_0, node1_1, "A");
}
public BinaryTreeNode getRoot() {
return root;
}
}
##### BinaryTreeSearch.java
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
/**
* Created by apple on 16/6/18.
*/publicclassBinaryTreeSearch {publicstaticvoidBFS(BinaryTree tree) {
Queue<BinaryTreeNode> openQueue = new LinkedList<>();
Queue<BinaryTreeNode> closeQueue = new LinkedList<>();
openQueue.add(tree.getRoot());
while (openQueue.size() > 0) {
if (openQueue.peek().getLeftNode() != null) {
openQueue.add(openQueue.peek().getLeftNode());
}
if (openQueue.peek().getRightNode() != null) {
openQueue.add(openQueue.peek().getRightNode());
}
System.out.print(openQueue.peek().getRoot());
closeQueue.add(openQueue.poll());
}
System.out.println();
}
publicstaticvoidDFS (BinaryTree tree) {
Stack<BinaryTreeNode> openStack = new Stack<>();
Stack<BinaryTreeNode> closeStack = new Stack<>();
openStack.add(tree.getRoot());
while (openStack.size() > 0) {
closeStack.add(openStack.pop());
System.out.print(closeStack.peek().getRoot());
if (closeStack.peek().getRightNode() != null) {
openStack.add(closeStack.peek().getRightNode());
}
if (closeStack.peek().getLeftNode() != null) {
openStack.add(closeStack.peek().getLeftNode());
}
}
System.out.println();
}
}
##### Hello.java
/**
* Created by apple on 16/6/13.
*/publicclassHello {publicstaticvoidmain(String[] args) {
BinaryTree tree = new BinaryTree();
System.out.println("BFS");
BinaryTreeSearch.BFS(tree);
System.out.println("DFS");
BinaryTreeSearch.DFS(tree);
}
}
BinaryTreeNode.java/*** Created by apple on 16/6/18.*/public class BinaryTreeNode { private BinaryTreeNode leftNode; private BinaryTreeNode rightNode; private String root; public BinaryTr