前序遍历——根 左 右
中序遍历——左 根 右
后序遍历——左 右 根
1 | class Stack_BinaryTree{ |
在所有兄弟结点之间加一条连线。
输入是List
1 | package com.interview.sort; |
输入是Array
1 | import java.util.Arrays; |
1 | import java.util.Arrays; |
1 | import java.lang.reflect.Array; |
1 | public class Tower_demo { |
通过二叉树的中序遍历过程来分析汉诺塔问题:
考虑A、B、C三根柱子,A上从上到下有1、2、3三个数,要把A上的数移动到C上,其过程应该是
** A B C**
初始 123
A->C 23 1
A->B 3 2 1
C->B 3 12
A->C 12 3
B->A 1 2 3
B->C 1 23
A->C 123
可以写成下图二叉树的中序遍历
在程序中有两个输出语句,
结束条件中的数据语句输出的是二叉树中的叶子结点
递归左子树和递归右子树中间的输出语句输出是所有的非叶子结点
所有左孩子和右孩子输出语句中得到的实际参数都是其父结点传递的,根节点输出语句得到的参数是初始传递的参数
轮换的含义
1.c ats –> 2.ca st
3.c tsa –> 4.ct as
5.c sat –> 6.cs ta
1 | import java.io.BufferedReader; |
1 | import java.io.BufferedReader; |
1 | import java.io.BufferedReader; |
1 | import java.io.*; // for I/O |