二叉樹遍歷分析


  簡單二叉樹遍歷,可分為:先序,中序,后序。

  在此分別總結先序,中序,后序的結點輸出順序。

  先序: 1.訪問根結點

    2.訪問左子樹

    3.訪問右子樹

 

先序較簡單,不予以即系解釋。

  中序:1.訪問左子樹

     2.訪問根結點

       3.訪問右子樹

    原則:訪問左子樹。【先訪問左子樹中的左子樹,再訪問左子樹中的右子樹。】直到訪問到葉子結點后輸出。

       輸出根。

         訪問右子樹。【先訪問右子樹中的左子樹,再訪問右子樹中的右子樹。】直到訪問到葉子結點后輸出。

具體步驟如下:

  A作為根。從A開始,先訪問A的左子樹。即

在看B的左子樹,D。則輸出D。B無左子樹。訪問完B的左子樹。然后訪問B。輸出B。再看B的右子樹。F有左子樹E,則輸出E。返回輸出F。A的左子樹全部輸出完,再返回A,輸出A。

  

同理,看A的右子樹。。輸出順序為G,H,C,I。

 

所以,中序遍歷輸出的結果為:(D B E F)A(G H C I).

 

  后序:1.訪問左子樹

     2.訪問右子樹

          3.訪問根

     原則:訪問左子樹。【先訪問左子樹中的左子樹,再訪問左子樹中的右子樹】。直到訪問到葉子結點后輸出。

        訪問右子樹。【先訪問右子樹中的左子樹,再訪問右子樹中的右子樹】。直到訪問到葉子結點后輸出。

        再返回訪問根,並輸出。

具體步驟:

  先訪問A的左子樹。再訪問左子樹中的左子樹。【即:A的左子樹為B,再訪問B的左子樹D。D沒有左右子樹,輸出D。】,然后訪問左子樹中的右子樹。【即:訪問B的右子樹F,F還有左子樹,再訪問F的左子樹E,E沒有左右子樹。輸出E。再輸出F,再輸出B。】。

  然后訪問A的右子樹。再訪問右子樹中的左子樹。【即:A的右子樹為C,再訪問C的左子樹G。G還有右子樹H,輸出H。再輸出G,再輸出G】,然后訪問右子樹中的右子樹。【即:訪問C的右子樹I,I沒有左右子樹,輸出I。在輸出C。再輸出A。】。

  所以,后序遍歷輸出結果為:(D E F B)(H G I C)A

 

 

 

本節課時網頁鏈接:http://mooc.study.163.com/learn/ZJU-1000033001?tid=1000044001#/learn/content?type=detail&id=1000112008&cid=1000102047

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM