1. 程式人生 > >二叉搜尋樹層序遍歷C語言

二叉搜尋樹層序遍歷C語言

  層序遍歷,寫完了,感慨下.

  不同於前序遍歷,中序遍歷,後序遍歷,層序遍歷沒有使用棧模式,而是使用了佇列.

  佇列中的資料,即QueueItem是二叉搜尋樹結點指標,這樣可以儲存結點,並且可以方便處理棧為空時返回值的問題.也就是可以返回NULL.

  用一個函式實現,該函式接受一個Tree型別的變數.沒有返回值.

  首先樹的根結點入隊,而後以佇列不為空為條件進行迴圈.迴圈內部首先從佇列中刪除一個結點,並通過DeleteQueue () 的返回值QueueItem獲得結點的指標.這時可以處理這個指標,如列印資訊.而後檢查該結點左子樹,右子樹是否不為空,依次將左子樹的指標,右子樹的指標新增到佇列,迴圈體結束.

  用到了佇列的特性,感覺到資料結構這門學科真的大有可學.