二叉樹打印

二叉樹層次遍歷

在這裏插入圖片描述
已知頭結點head,進行層次遍歷,需要一個last節點和nlast節點。難點是知道何時換行。
last節點:表示正在打印的當前行的最右節點
nlast節點:表示下一行的最右節點
last==nlast時就換行
我們需要一個隊列queue來存儲節點

在這裏插入圖片描述
壓入頭結點1,last=1,nlast=1;
彈出1,2進站,nlast=2
nlast=2,在壓入3,last=3,nlast=3;
此時last等於彈出的1,所以換行,last=nlast;
彈出2,壓入4,nlast=4;
彈出3,壓入5,nlast=5;
壓入6,nlast=6;
此時last等於彈出的3,所以換行,last=nlast;
彈出4,空空;
彈出5;
壓入7,nlast=7;
壓入8,nlast=8;
彈出6;
此時last==彈出的6,所以換行,last=nlast;
彈出7;
彈出8;

二叉樹的序列化和反序列化

序列化:將二叉樹變成字符串存儲
反序列化:將字符串重構成二叉樹
在這裏插入圖片描述

序列化方法:
1.先序遍歷:

不用特殊字符表示節點值結束的話會產生歧義。
在這裏插入圖片描述

2.中序遍歷
3.後序遍歷
4.層次遍歷
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章