数据结构与算法-- 广度优先打印二叉树
生活随笔
收集整理的這篇文章主要介紹了
数据结构与算法-- 广度优先打印二叉树
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
廣度優先打印二叉樹
- 題目:從上往下打印出二叉樹的每一個節點,同一層節點按照從左到右順序打印,例如下圖中二叉樹,依次打印出是8,6,10,5,7,9,11
- 如上題中二叉樹的節點定義我們用之前文章 二叉樹實現原理中定義的節點結構。
- 此處提議就是廣度優先原則的一個遍歷,但是需要一個從左到右的打印規則,和我們之前二叉樹的前序,中序,后續遍歷都不一樣,
- 可能開始想到的是中序遍歷,每次都打印根節點,但是中序遍歷比如左子樹中所有節點在右子樹之前,和題意不符合。
- 廣度優先原則的話我們想起之前文章:圖論,最短路算法,拓撲排序算法,其中拓撲排序算法,和最短路徑算法的優化版本都是用的廣度優先原則去遍歷圖。我們依然可以用相同的思路應對
- 先打印根,然后將根鏈接的所有節點依據從左到有原則依次加入隊列
- 不斷從隊列中取出節點打印,并重復上一步,直到隊列為空。
| 1 | 打印節點 8 | 節點6, 節點10 |
| 2 | 打印節點 6 | 節點10, 節點5,節點7 |
| 3 | 打印節點 10 | 節點5,節點7,節點9,節點11 |
| 4 | 打印節點 5 | 節點7,節點9,節點11 |
| 5 | 打印節點 7 | 節點9,節點11 |
| 6 | 打印節點 9 | 節點11 |
| 7 | 打印節點 11 | null |
- 依據以上分析可得一下代碼:
上一篇:數據結構與算法–舉例分析法- 棧的壓入彈出序列
下一篇:數據結構與算法-- 二叉樹后續遍歷序列校驗
總結
以上是生活随笔為你收集整理的数据结构与算法-- 广度优先打印二叉树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qq号注销需要多久
- 下一篇: 酷屏资源怎么下载和使用