使用静态内部类实现
静态内部类作为二叉树结点,实现了创建二叉树和遍历二叉树,使用了递归的方法
import java.util.Scanner;
public class BiTree<T> {
static class Node<T> {
private T data;
private Node<T> lChild;
private Node<T> rChild;
}
private Node<T> root; //保存根结点
private Node<T> createNode() { //新建结点
Scanner scanner = new Scanner(System.in);
T data =(T) scanner.next();
if (data.equals(".")) { //如果遇到".",就返回空
return null;
}
else {
Node<T> node = new Node<>(); //新建一个结点
node.data = data; //赋值
node.lChild = createNode(); //递归创建左子树
node.rChild = createNode(); //递归创建右子树
return node; //递归结束,将此结点返回
}
}
public void createBiTree() {
root = createNode(); //调用createNode(),返回值赋给根结点
}
private void traverse(Node<T> node) {
if (node == null) return; //如果二叉树为空,直接返回
else { //采用中序遍历
traverse(node.lChild);
System.out.println(node.data);
traverse(node.rChild);
}
}
public void traverse() {
traverse(root);
}
public static void main(String[] args) {
BiTree<Integer> biTree = new BiTree<>();
biTree.createBiTree();
biTree.traverse();
}
}