c語言列印二叉樹
在廣度遍歷的時候,有非常繁雜的計算符號的方法,要看懂可能得花時間。
(1)整個設計的難點在sprintf函式運用。
sprintf(buf,"%*s",5,"|")裡面的%*s表示填充*個符號,個數和符號分別在字串後面表示。
sprintf(buf,"%*.s",5,"|")裡面的%*s表示擷取*個符號,個數和符號分別在字串後面表示。這裡要注意,如果你給的符號的size小於擷取的個數*,會記憶體溢位。我一開始就是沒區分這個,搞了很久。
很多地方我都用了*.s這種形式,這是為啥我要單獨宣告一些很長的字串的原因,如「 」,「|||||||||||||」,這是了給它擷取用的。當然,可以不用宣告這麼長,我只是想著以後可能會擴充套件這個程式,所以就定義長了。
(2)要注意字元指標的初始化,很容易發生段錯誤
insert node to queue
root is 15
insert :57
insert :80
insert :76
insert :12
insert :0
insert :68
insert :51
insert :22
insert :97
insert :19
insert :48
insert :53
creat tree succuess!tree heigh is:5
_______________________
breath begin,enter root:
由於csdn的字元大小和終端的不一樣,所以用展示效果。這是乙個編好的程式,可以直接gcc編譯,然後執行
C語言樹狀列印二叉樹
在leecode刷題的時候,需要檢視建立的二叉樹是不是正確的,所以想簡單的寫乙個能看的樹狀圖就好了。因為在其他題目裡可能還需要重新寫,因此我這段 是想寫的簡短一點,自己能看就行。注釋 什麼的,等我的筆到貨之後再改吧。void disptreelayers tree t static void tre...
二叉樹列印
舉例 1.初始化時,last 1,把1放入佇列 2.將1出隊,把1的子孩子2,3放入佇列,更新nlast 3 3.nlast更新完之後,列印上一次出隊的1,並和last比較,如果相同就列印換行,並更新last nlast 3 4.將2出隊,把2的子孩子4放入佇列,更新nlast 4 5,nlast更...
二叉樹列印
給定一顆二叉樹的頭節點head,請按照現在大家看到的這種格式列印 要求列印成 12 主要解決的問題是 如何換行 last 表示正在列印的當前行的最右節點 從左至右遍歷,如果遍歷到last節點,說明該換行了,換行之後,只需要nlast last,繼續下一行的列印過程,一直重複,直到所有的節點都列印完。...