C語言列印二叉樹

2021-06-21 04:52:40 字數 933 閱讀 1717

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,繼續下一行的列印過程,一直重複,直到所有的節點都列印完。...