前序遍历:根左右
中序遍历:左根右
后序遍历:左右根
前缀式:+AB
中缀式:A+B
后缀式:AB+
例题一:
前序遍历(前缀式):- + 4 * 1 - 5 2 / 6 3
根在前,从最后开始:-52,*1-52,+4*1-52,+4*-52/63,-+4*-52/63
中序遍历(中缀式):(4+1*(5-2))-6/3
根在中间,从最后开始:5-2, 1*5-2, 4+1*5-2, 4+1*5-2-6/3
加上括号,区分优先级,(5-2),1*(5-2),4+1*(5-2),(4+1*(5-2))-6/3
后序遍历(后缀式):4 1 5 2 - * + 6 3 / -
根在后,从最后开始:52-, 152-*, 4152-*+,4152-*+63/, 4152-*+63/-
① 52-,152-*, 52-相同
② 152-*,4152*+,152-*相同
③ 4152*+,4152*+63/, 4152*+相同
④ 4152*+63/, 4152*+63/-,4152*+63/相同
前序遍历→中序遍历
前序遍历(前缀式):- + 4 * 1 - 5 2 / 6 3
①从后入栈
②
③
④
中序遍历:(4+1*(5-2))-6/3
所以,前序遍历(前缀式):- + 4 * 1 - 5 2 / 6 3 中序遍历:(4+1*(5-2))-6/3
从后面开始算(这样符号才有用)
后序遍历→中序遍历
后序遍历:4 1 5 2 - * + 6 3 / -
① 从前入栈
②
③
④
中序遍历:(4+1*(5-2))-6/3
所以,后序遍历:- + 4 * 1 - 5 2 / 6 3 中序遍历:(4+1*(5-2))-6/3
注意,不要抄错