原理
如圖一些試題先序遍歷結果為——abdhecfg
(首先從根節點開始,然後左節點,左節點成為根節點,然後再左節點,然後右節點(如果左子樹遍歷完後就遍歷該根節點的右子樹))
中序遍歷結果為——hdbeafcg
(當左節點被讀取後,左節點被當作根節點)
後序遍歷結果為——hdebfgca
(注意每個節點的左右子樹必須遍歷完)
層次遍歷結果為——abcdefgh
先序遍歷為 abcdefghijk
中序遍歷為 cedfbahkjig
後序遍歷為 efdcbkjihga
已知部分遍歷,求樹或其他序列
操作
//先序遍歷
void preorderwithoutrecursion()
} cout
<< endl;
} }
//中序遍歷
void inorderwithoutrecursion()
else
} cout
<< endl;
} }
//後序遍歷
void postorderwithoutrecursion()
while (!s.empty())
} }
cout << endl;
} }
void preorder (node *p)
}void inorder (node *p)
}void postorder (node *p)
}
二叉樹先序遍歷 中序遍歷 後序遍歷
輸入二叉樹的先序遍歷序列和中序遍歷序列,輸出該二叉樹的後序遍歷序列。非建二叉樹版本 include includeusing namespace std string preord,inord void rebuild int preleft,int preright,int inleft,int ...
二叉樹先序遍歷 後序遍歷 中序遍歷
從根部 a 開始,然後開始遍歷左子樹,直接找到 b 檢視 b 有沒有左子樹,有 d,再檢視 d 有沒有子樹,沒有,d 已經是葉子,所以第二個是 d。倒回去,取中 b,第三個數是 b。檢視 b 有沒有右子樹,有 e 檢視 e 有沒有子樹,有 g 左 h 右 所有後面三個數是 egh 先查左子樹,存在繼...
二叉樹先序遍歷 中序遍歷 後序遍歷
二叉樹先序遍歷 中序遍歷 後序遍歷 include include typedef struct bitnodebitnode,bitree void visit bitnode c 先序遍歷 void preorder bitree t 中序遍歷 void inorder bitree t 後序遍...