将二叉树按照树结构输出
题目描述:
将任意一个二叉树按照树结构输出,根节点直接输出值,子节点随着层数的增加,每增加一层子节点值前面增加“–”,当不存在左右节点时输出null。
题目解析:
我们一定要明确无论二叉树的输出结果是什么形式,它都是在四种遍历的基础上进行的。若题目无额外要求,我们首先考虑前序遍历输出,因前序输出更符合人的正常思维。因此该题我们是在前序遍历的基础上对二叉树输出加以改进。
代码实现:
//BinTree接口
package bin_tree;
/**
* 二叉树的通用接口
* @param <E>
*/
public interface BinTree<E> {
void add(E e);
int size();
}
//BinSearchNewTree实现类
package bin_tree.bin_search_tree;
import bin_tree.BinTree;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
public class BinSearchNewTree<E extends Comparable> implements BinTree<E> {
class Node{
Object data;
Node left;
Node right;
public Node(Object data) {
this.data = data;
}
}
private Node root;
private int size;
//向二叉树中添加元素
@Override
public v