樹和森林的遍歷

2021-09-12 13:33:50 字數 1369 閱讀 1417

一、樹的遍歷

樹的結構是乙個根加上森林,而森林又是樹的集合,由此我們可以引出樹的兩種遍歷方式(這兩種遍歷方式本身也是一種遞迴定義)。

1、先根(先序)遍歷:即先訪問樹的根結點,然後依次先根遍歷根的每棵子樹

2、後根(後序)遍歷:即先依次後根遍歷根的每棵子樹,然後訪問根結點

3、另外還有一種層序遍歷,這種遍歷就是自上向下,自左向右按層次進行遍歷即可

根據上面的兩種遍歷定義可得上圖樹的遍歷結果如下:

先根遍歷:abefcdghijk

後根遍歷:efbcijkhgda

層次遍歷:abcdefghijk

二、森林的遍歷

森林由三部分構成:森林中第乙個樹的根結點+森林中第一顆樹的根結點的子樹森林+森林中除去第一棵樹而由其它樹構成的森林。按照森林和樹相互遞迴的定義,我們可以推出森林的兩種遍歷方(這兩種遍歷方法也是遞迴定義)。

1、先序遍歷森林,訪問規則如下:

第一、先訪問森林中第一棵樹的根結點

第二、然後,先序遍歷第一棵樹中根結點的子樹森林(相當於二叉樹的左子樹)

第三、然後,先序遍歷除去第一棵樹之後剩餘的樹構成的森林(相當於二叉樹的右子樹)

2、中序遍歷森林

第一、中序遍歷第一棵樹中根結點的子樹森林(相當於二叉樹的左子樹)

第二、然後,訪問森林中第一棵樹的根結點

第三、然後,中序序遍歷除去第一棵樹之後剩餘的樹構成的森林(相當於二叉樹的右子樹)

將上面的樹的根結點去掉得到的森林,按照森林的兩種遍歷方法得到的結果如下:

先序遍歷:befcdghijk

中序遍歷:efbcijkhgd

三、總結

對照上面樹和圖的遍歷我們可以得到樹、森林、二叉樹遍歷的對應關係

樹的遍歷

對應森林的遍歷

對應二叉樹的遍歷

先根遍歷

->

先序遍歷

->

先序遍歷

後根遍歷

->

中序遍歷

->

中序遍歷

樹和森林的遍歷

樹的遍歷 設樹t如下圖所示,結點r是根,根的子樹從左到右依次為t1,t2,tk。1 樹t的前序遍歷定義 若樹t非空,則 訪問根結點r 依次前序遍歷根r的各子樹t1,t2,tk。2 樹的後序遍歷定義 若樹t非空,則 依次後序遍歷根t的各子樹tl,t2,tk 訪問根結點r。例 對下面的 a 圖中的樹進行...

樹和森林的遍歷

數的結構是乙個根加上森林,而森林又是樹的集合,由此我們可以引出樹的兩種遍歷方式 這兩種遍歷方式本身也是一種遞迴定義 1 先根 先序 遍歷 即先訪問樹的根結點,然後依次先根遍歷根的每棵子樹 2 後根 後序 遍歷 即先依次後根遍歷根的每棵子樹,然後訪問根結點 3 另外還有一種層序遍歷,這種遍歷就是自上向...

樹和森林的遍歷

由樹結構的定義可知,樹的遍歷有二種方法。1 先序遍歷 先訪問根結點,然後依次先序遍歷 完每棵子樹。2 後序遍歷 先依次後序遍歷完每棵子樹,然後訪 問根結點。說明 樹的先序遍歷實質 上與將樹轉換成二叉樹 後對二叉樹的先序遍歷相同。樹的後序遍歷實質上與將樹轉換成二叉樹 後對二又樹的中序遍歷相同。1 先序...