二叉樹是由n個(n>=0)個節點所構成的有限集合。當n=0時二叉樹為空樹;當n>0時,二叉樹滿足以下條件:
二叉樹的每個節點至多有兩個子節點;
二叉樹對於子節點有嚴格的左右之分,即為有序的。
層次遍歷:按層從左到右訪問節點
先序遍歷dlr:訪問根節點;先序遍歷左子樹;先序遍歷右子樹
中序遍歷ldr:中序遍歷左子樹;訪問根節點;中序遍歷右子樹
後序遍歷lrd:後序遍歷左子樹;後序遍歷右子樹;訪問根節點
對於下圖二叉樹:
層次遍歷:abcdefg
先序遍歷:abdecfg
中序遍歷:dbeacgf
後序遍歷:debgfca
取先序遍歷序列中的第乙個節點作為二叉樹的根節點
在中序遍歷中尋找根節點,確定根節點在中序遍歷序列中的位置i(0<=i<=length-1),其中length為二叉樹節點的個數
先序遍歷序列中:根節點之後的i(1到i)個節點為左子樹的先序遍歷序列,剩下的length-i-1個節點為右子樹的先序遍歷序列
中序遍歷序列中:根節點之前的i(0到i-1)個節點為左子樹的中序遍歷序列,根節點後的length-i-1個節點為右子樹的中序遍歷序列
在得到的左右子樹序列中重複步驟1和2得到根節點,再重複步驟3和4得到左右子樹的遍歷序列,以此遞迴便可以得到一棵唯一的二叉樹
根據後序和中序遍歷輸出先序遍歷
本題要求根據給定的一棵二叉樹的後序遍歷和中序遍歷結果,輸出該樹的先序遍歷結果。輸入格式 第一行給出正整數nn le 30 30 是樹中結點的個數。隨後兩行,每行給出nn個整數,分別對應後序遍歷和中序遍歷結果,數字間以空格分隔。題目保證輸入正確對應一棵二叉樹。輸出格式 在一行中輸出preorder 以...
根據後序和中序遍歷輸出先序遍歷
本題要求根據給定的一棵二叉樹的後序遍歷和中序遍歷結果,輸出該樹的先序遍歷結果。第一行給出正整數n 30 是樹中結點的個數。隨後兩行,每行給出n個整數,分別對應後序遍歷和中序遍歷結果,數字間以空格分隔。題目保證輸入正確對應一棵二叉樹。在一行中輸出preorder 以及該樹的先序遍歷結果。數字間有1個空...
根據後序和中序遍歷輸出先序遍歷
n 是樹中結點的個數。隨後兩行,每行給出 n個整數,分別對應後序遍歷和中序遍歷結果,數字間以空格分隔。題目保證輸入正確對應一棵二叉樹。7 2 3 1 5 7 6 4 1 2 3 4 5 6 7preorder 4 1 3 2 6 5 7 思路 一.根據後序遍歷和中序遍歷建樹 1.二叉鍊錶結構的定義 ...