天天看點

二叉樹的周遊

  ⑴通路結點本身(n),

  ⑵周遊該結點的左子樹(l),

  ⑶周遊該結點的右子樹(r)。

  以上三種操作有六種執行次序:

  nlr、lnr、lrn、nrl、rnl、rln。

  注意:

  前三種次序與後三種次序對稱,故隻讨論先左後右的前三種次序。

  根據通路結點操作發生位置命名:

  ——通路根結點的操作發生在周遊其左右子樹之前。

  ——通路根結點的操作發生在周遊其左右子樹之中(間),它也被叫做“對稱序列”。

  ——通路根結點的操作發生在周遊其左右子樹之後。

  若二叉樹非空,則依次執行如下操作:

  ⑴周遊左子樹;

  ⑵通路根結點;

  ⑶周遊右子樹。

  2.先序周遊的遞歸算法定義:

  ⑴ 通路根結點;

  ⑵ 周遊左子樹;

  ⑶ 周遊右子樹。

  3.後序周遊得遞歸算法定義:

  ⑵周遊右子樹;

  ⑶通路根結點。

  4.層次周遊

二叉樹的周遊

前序(pre-order traversal)、中序(in-order traversal)、後序周遊(post-ordertraversal)和深度優先搜尋的順序類似,層序周遊(level-order traversal)和廣度優先搜尋的順序類似。

前序和中序周遊的結果合在一起可以唯一确定二叉樹的形态,也就是說根據周遊結果可以構造出二叉樹。

繼續閱讀