1. 程式人生 > 其它 >Centos防火牆配置

Centos防火牆配置

目錄

 

1.遍歷二叉樹演算法

1.1前序

 1.2中序

 1.3後序


 

1.遍歷二叉樹演算法

     遍歷二叉樹(traversing binary tree)是指按某條搜尋路徑巡訪樹中每個結點,使得每個結點均被訪問一次,而且僅被訪問一次。訪問的含義很廣,可以是對結點做各種處理,包括輸出結點的資訊,對結點進行運算和修改等。遍歷二叉樹是二叉樹最基本的操作,也是二叉樹其他各種操作的基礎,遍歷的實質是對二叉樹進行線性化的過程,即遍歷的結果是將非線性結構的樹中結點排成一個線性序列。由於二叉樹的每個結點都可能有兩棵子樹,因而需要尋找一種規律,以便使二叉樹上的結點能排列在一個線性佇列上,從而便於遍歷。
       回顧二叉樹的遞迴定義可知,二叉樹是由3個基本單元組成:根結點、左子樹和右子樹。因此,若能依次遍歷這三部分,便是遍歷了整個二叉樹。假如從L、D、R分別表示遍歷左子樹、訪問根結點和遍歷右子樹,則可有DLR、LDR、LRD、DRL、RDL、RLD這6種遍歷二叉樹的方案。若限定先左後右,則只有前3種情況,分別稱之為先(根)序遍歷、中(根)序遍歷和後(根)序遍歷。基於二叉樹的遞迴定義,可得下述遍歷二叉樹的遞迴演算法定義。

簡單的來說,就是二叉樹前中後序的遍歷。由於要考二級了,今天也複習到了二叉樹,做到遍歷題目,就淺談一下自己的方法。

直接上題目會更直接!我們把根節點,左子樹,右子樹分別成為D,L,R。

1.1前序

參考圖1.12,先序先訪問根節點,左子樹,右子樹,顯而易見,先序結果為:DLR。

圖1.12

 當我們會了最簡單的二叉樹遍歷後,就可以嘗試複雜一點的。

如圖1.13我們先看以A為根節點,B為左子樹,C為右子樹的二叉樹它們的先序為

A      B     C

在看以B為根節點,D為左子樹,E為右子樹的二叉樹它們的先序為

B      D     E

最後看以C為根節點,F為左子樹,G為右子樹的二叉樹它們的先序為

C     F      G 

最終我們將它們組合在一起,得到先序結果:ABDECFG!

                                                                                                                   圖1.13

 

 1.2中序

參考圖1.12,中序先訪問左子樹,根節點,右子樹,顯而易見,先序結果為:LDR。

看點複雜的,如圖1.21

老樣子先看A為根節點,BC為左右子樹的二叉樹,中序結果為:BAC,

再看B(後面都將縮寫了,我太懶了!)中序結果為DB,

再看C,中序結果為EC,

再看E,中序結果為EF,

最終我們將它們組合起來DBAEFC。

圖1.21

 

 

 

 1.3後序

參考圖1.12,後序先訪問左右子樹,根節點,顯而易見,先序結果為:LRD。

上圖!看1.31

都是上述一樣的操作,說一下方法,結果看自己嘍!

先看A 後序結果為BCA,

再看B,後序價格為DB,

再看C,後序結果為EC,

最後再看E,後序結果為FE

OK,最後看你組合,結果為******!!!!!

 

最後做個總結,我感覺這個方法最簡單了,我腦子不行,不會繞,只能用這種了,有更好的,請立馬私我!!!最後祝大家二級順利過!