树的遍历是指依次访问树中的每人结点一次且仅访问一次。
第一部分: 二叉树的遍历
本文先介绍二叉树的遍历。
用前序遍历算法,得出: a b d h i e j c f k g
用中序遍历算法, 得出:h d i b j e a f k c g
不是 h d i j e b a k f c b, 因为 e是 b的右子树,必须先b, 再e,
在a之后,接着是f, 不是k, 因为k是右子树
用后序遍历算法, 得出:h i d j e b k f g c a
二 用二元有序根树来表示各种类型的表达式
前序遍历 (波兰式): ÷ * + b + c d a -* e f * + g h * i j
前缀表示法没有二义法, 不需要括号, 从右到左可以求得表达式的值
后序遍历(逆波兰式): b c d + + a * e f * g h+ i j * * - ÷
后缀表示法没有二义性,不需要括号, 从左向右可以求得表达式的值。
中序遍历(中缀表示):与题干的写法一致。
中缀表示法需要括号。
三 中序遍历结果
第二部分 树的遍历
有以下两种方法:
(1)先序(根) 遍历
先访问树的根结点,再依次先序遍历根结点的各棵子树。
(2)后序(根)遍历
若树的根结点有子树,则依次后序遍历各棵子树, 然后再访问要结点; 否则(根结点无子树), 只访问根结点。