二叉樹是由3個(gè)基本單元組成:根節(jié)點(diǎn)挚歧、左子樹和右子樹扛稽。因此,若能依次遍歷這三部分滑负,便是遍歷了整個(gè)二叉樹在张。假如以L、D矮慕、R分別表示遍歷左子樹帮匾、訪問(wèn)根節(jié)點(diǎn)和遍歷右子樹,則可以有DLR痴鳄、LDR瘟斜、LRD、DRL痪寻、RDL螺句、RLD這6種遍歷二叉樹的方案。若限定先左后右橡类,則只有前3種情況蛇尚,分別稱之為先(根)序遍歷、中(根)序遍歷和后(根)序遍歷顾画。
下面通過(guò)一個(gè)例子來(lái)講解取劫,現(xiàn)有一個(gè)表達(dá)式:a + b * (c - d) - e / f
,則該表達(dá)式可表示為如下二叉樹:
則對(duì)其進(jìn)行遍歷
- 先序遍歷結(jié)果為:
-+a*b-cd/ef
亲雪。 - 中序遍歷結(jié)果為:
a+b*c-d-e/f
勇凭。 - 后序遍歷結(jié)果為:
abcd-*+ef/-
。
從表達(dá)式來(lái)看义辕,以上三個(gè)序列恰好為表達(dá)式的前綴表示(波蘭式)虾标、中綴表示和后綴表示(逆波蘭式)。