Can you summarize the following document?
        
  與那些基本上都有標準遍歷方式(通常是按線性順序)的線性資料結構(如連結串列、一維陣列)所不同的是,樹結構有多種不同的遍歷方式。從二叉樹的根節點出發,節點的遍歷分為三個主要步驟:對當前節點進行操作(稱為“訪問”節點)、遍歷左邊子節點、遍歷右邊子節點。這三個步驟的先後順序也是不同遍歷方式的根本區別。  由於從給定的某個節點出發,有多個可以前往的下一個節點(樹不是線性資料結構),所以在順序計算(即非平行計算)的情況下,只能推遲對某些節點的訪問——即以某種方式儲存起來以便稍後再訪問。常見的做法是採用棧(LIFO)或佇列(FIFO)。由於樹本身是一種自我引用(即遞迴定義)的資料結構,因此很自然也可以用遞迴方式,或者更準確地說,用corecursion,來實現延遲節點的儲存。這時(採用遞迴的情況)這些節點被儲存在call stack中。  遍歷方式的命名,源於其訪問節點的順序。最簡單的劃分:是深度優先(先訪問子節點,再訪問父節點,最後是第二個子節點)?還是廣度優先(先訪問第一個子節點,再訪問第二個子節點,最後訪問父節點)? 深度優先可進一步按照根節點相對於左右子節點的訪問先後來劃分。如果把左節點和右節點的位置固定不動,那麼根節點放在左節點的左邊,稱為前序(pre-order)、根節點放在左節點和右節點的中間,稱為中序(in-order)、根節點放在右節點的右邊,稱為後序(post-order)。對廣度優先而言,遍歷沒有前序中序後序之分:給定一組已排序的子節點,其“廣度優先”的遍歷只有一種唯一的結果。

  以下均是用遞迴方法。

  指先訪問根,然後訪問子樹的遍歷方式  其C程式碼如下:

  指先訪問左(右)子樹,然後訪問根,最後訪問右(左)子樹的遍歷方式  其C程式碼如下

  指先訪問子樹,然後訪問根的遍歷方式  其C程式碼如下

  和深度優先遍歷不同,廣度優先遍歷會先訪問離根節點最近的節點。二叉樹的廣度優先遍歷又稱按層次遍歷。演算法藉助佇列實現。

  

  先訪問根結點,後選擇一子結點訪問並訪問該節點的子結點,持續深入後再依序訪問其他子樹,可以輕易用遞迴或棧的方式實現。 void travel(treenode* nd){
在電腦科學裡,樹的遍歷(也稱為樹的搜尋)是圖的遍歷的一種,指的是按照某種規則,不重複地訪問某種樹的所有節點的過程。具體的訪問操作可能是檢查節點的值、更新節點的值等。不同的遍歷方式,其訪問節點的順序是不一樣的。以下雖然描述的是二叉樹的遍歷演算法,但它們也適用於其他樹形結構。