使用Java实现递归的先中后序的二叉树遍历
先创建一颗二叉树,我选择手动创建
public static Lnode create_one_tree() {
System.out.println("这里开始将练习数据结构与算法!!!!!!!!加油!奥利给!!!");
//先创建一个二叉树
//使用先序遍历的顺序进行创建二叉树。
//创建根节点
Lnode root = new Lnode(1);
Lnode root_l = new Lnode(2);
Lnode root_r = new Lnode(5);
Lnode root_l_l = new Lnode(3);
Lnode root_l_r = new Lnode(4);
Lnode root_r_r = new Lnode(6);
//进行串联
root.l = root_l;
root.r = root_r;
root_l.l = root_l_l;
root_l.r = root_l_r;
root_r.r = root_r_r;
return root;
}
递归的二叉树的遍历非常简单,只要记住通用的代码逻辑即可
//先序遍历
public static void recursive_tree_pre(Lnode T) {
if (T != null) {
//先序的遍历接口
System.out.println(T.data);
recursive_tree_pre(T.l);
//中序的遍历接口
recursive_tree_pre(T.r);
//后序的遍历接口
}
}
//中序遍历
public static void recursive_tree_mid(Lnode T) {
if (T != null) {
//先序的遍历接口
recursive_tree_mid(T.l);
//中序的遍历接口
System.out.println(T.data);
recursive_tree_mid(T.r);
//后序的遍历接口
}
}
//后序遍历
public static void recursive_tree_post(Lnode T) {
if (T != null) {
//先序的遍历接口
recursive_tree_post(T.l);
//中序的遍历接口
recursive_tree_post(T.r);
//后序的遍历接口
System.out.println(T.data);
}
}
运行结果: