September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
|
|
@ -1,105 +1,87 @@
|
|||
import java.util.Queue;
|
||||
import java.util.LinkedList;
|
||||
public class TreeTraverse
|
||||
{
|
||||
private static class Node<T>
|
||||
{
|
||||
public Node<T> left;
|
||||
public Node<T> right;
|
||||
public T data;
|
||||
public Node(T data)
|
||||
{
|
||||
this.data = data;
|
||||
}
|
||||
public Node<T> getLeft()
|
||||
{
|
||||
return this.left;
|
||||
}
|
||||
public void setLeft(Node<T> left)
|
||||
{
|
||||
this.left = left;
|
||||
}
|
||||
public Node<T> getRight()
|
||||
{
|
||||
return this.right;
|
||||
}
|
||||
public void setRight(Node<T> right)
|
||||
{
|
||||
this.right = right;
|
||||
}
|
||||
}
|
||||
public static void preorder(Node<?> n)
|
||||
{
|
||||
if (n != null)
|
||||
{
|
||||
System.out.print(n.data + " ");
|
||||
preorder(n.getLeft());
|
||||
preorder(n.getRight());
|
||||
}
|
||||
}
|
||||
public static void inorder(Node<?> n)
|
||||
{
|
||||
if (n != null)
|
||||
{
|
||||
inorder(n.getLeft());
|
||||
System.out.print(n.data + " ");
|
||||
inorder(n.getRight());
|
||||
}
|
||||
}
|
||||
public static void postorder(Node<?> n)
|
||||
{
|
||||
if (n != null)
|
||||
{
|
||||
postorder(n.getLeft());
|
||||
postorder(n.getRight());
|
||||
System.out.print(n.data + " ");
|
||||
}
|
||||
}
|
||||
public static void levelorder(Node<?> n)
|
||||
{
|
||||
Queue<Node<?>> nodequeue = new LinkedList<Node<?>>();
|
||||
if (n != null)
|
||||
nodequeue.add(n);
|
||||
while (!nodequeue.isEmpty())
|
||||
{
|
||||
Node<?> next = nodequeue.remove();
|
||||
System.out.print(next.data + " ");
|
||||
if (next.getLeft() != null)
|
||||
{
|
||||
nodequeue.add(next.getLeft());
|
||||
}
|
||||
if (next.getRight() != null)
|
||||
{
|
||||
nodequeue.add(next.getRight());
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void main(final String[] args)
|
||||
{
|
||||
Node<Integer> one = new Node<Integer>(1);
|
||||
Node<Integer> two = new Node<Integer>(2);
|
||||
Node<Integer> three = new Node<Integer>(3);
|
||||
Node<Integer> four = new Node<Integer>(4);
|
||||
Node<Integer> five = new Node<Integer>(5);
|
||||
Node<Integer> six = new Node<Integer>(6);
|
||||
Node<Integer> seven = new Node<Integer>(7);
|
||||
Node<Integer> eight = new Node<Integer>(8);
|
||||
Node<Integer> nine = new Node<Integer>(9);
|
||||
one.setLeft(two);
|
||||
one.setRight(three);
|
||||
two.setLeft(four);
|
||||
two.setRight(five);
|
||||
three.setLeft(six);
|
||||
four.setLeft(seven);
|
||||
six.setLeft(eight);
|
||||
six.setRight(nine);
|
||||
preorder(one);
|
||||
System.out.println();
|
||||
inorder(one);
|
||||
System.out.println();
|
||||
postorder(one);
|
||||
System.out.println();
|
||||
levelorder(one);
|
||||
System.out.println();
|
||||
}
|
||||
import java.util.*;
|
||||
|
||||
public class TreeTraversal {
|
||||
|
||||
static class Node<T> {
|
||||
T value;
|
||||
Node<T> left;
|
||||
Node<T> right;
|
||||
|
||||
Node(T value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
void visit() {
|
||||
System.out.print(this.value + " ");
|
||||
}
|
||||
}
|
||||
|
||||
static enum ORDER {
|
||||
PREORDER, INORDER, POSTORDER, LEVEL
|
||||
}
|
||||
|
||||
static void traverse(Node<?> node, ORDER order) {
|
||||
if (node == null) {
|
||||
return;
|
||||
}
|
||||
switch (order) {
|
||||
case PREORDER:
|
||||
node.visit();
|
||||
traverse(node.left, order);
|
||||
traverse(node.right, order);
|
||||
break;
|
||||
case INORDER:
|
||||
traverse(node.left, order);
|
||||
node.visit();
|
||||
traverse(node.right, order);
|
||||
break;
|
||||
case POSTORDER:
|
||||
traverse(node.left, order);
|
||||
traverse(node.right, order);
|
||||
node.visit();
|
||||
break;
|
||||
case LEVEL:
|
||||
Queue<Node<?>> queue = new LinkedList<>();
|
||||
queue.add(node);
|
||||
while(!queue.isEmpty()){
|
||||
Node<?> next = queue.remove();
|
||||
next.visit();
|
||||
if(next.left!=null)
|
||||
queue.add(next.left);
|
||||
if(next.right!=null)
|
||||
queue.add(next.right);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
Node<Integer> one = new Node<Integer>(1);
|
||||
Node<Integer> two = new Node<Integer>(2);
|
||||
Node<Integer> three = new Node<Integer>(3);
|
||||
Node<Integer> four = new Node<Integer>(4);
|
||||
Node<Integer> five = new Node<Integer>(5);
|
||||
Node<Integer> six = new Node<Integer>(6);
|
||||
Node<Integer> seven = new Node<Integer>(7);
|
||||
Node<Integer> eight = new Node<Integer>(8);
|
||||
Node<Integer> nine = new Node<Integer>(9);
|
||||
|
||||
one.left = two;
|
||||
one.right = three;
|
||||
two.left = four;
|
||||
two.right = five;
|
||||
three.left = six;
|
||||
four.left = seven;
|
||||
six.left = eight;
|
||||
six.right = nine;
|
||||
|
||||
traverse(one, ORDER.PREORDER);
|
||||
System.out.println();
|
||||
traverse(one, ORDER.INORDER);
|
||||
System.out.println();
|
||||
traverse(one, ORDER.POSTORDER);
|
||||
System.out.println();
|
||||
traverse(one, ORDER.LEVEL);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue