1. 程式人生 > >資料結構之二叉樹的遍歷:

資料結構之二叉樹的遍歷:

一.二叉樹—特殊樹(基礎知識)
(一)概念:
一個二叉樹要麼為空,要麼包含一個根節點,外加一個左子樹和右子樹,每一個字數都是二叉樹
(二)二叉樹的形狀:
不平衡二叉樹、完美平衡二叉樹、完全二叉樹、滿二叉樹;
一般來說二叉樹越平衡,訪問、插入、刪除的效能也越高;
(三)二叉樹的遍歷;
1,前序遍歷:
根–》左–》右:可以確定二叉樹的根(第一個)
2,中序遍歷:
左–》根–》右:可以確定二叉樹的左子樹和右子樹
3,後序遍歷:
左–》右–》根:可以確定二叉樹的根(最後一個)
3,層序遍歷:
從0層級開始,每一個層級從左—》右的順序訪問節點
遇到的問題:給定一個後序遍歷和一箇中序遍歷,求前序遍歷:
解決方法:在後序遍歷中確定根節點,中序遍歷中確定左右子樹:
如:
某二叉樹中序序列為A,B,C,D,E,F,G,後序序列為B,D,C,A,F,G,E則前序序列是()
解析:
第一步:在後序遍歷確定跟節點:E;
第二部:在中序遍歷確定左右子樹:ABCD E FG;
第四部:在後序遍歷確定跟節點:A G;
第五部:在中序遍歷確定左右子樹:A BCD E F G;
第六部:在後序遍歷確定跟節點:C;
第七部:在中序遍歷確定左右子樹:A無左子樹;G無右子樹