已知後序與中序輸出前序(先序):
後序:3, 4, 2, 6, 5, 1(左右根)
中序:3, 2, 4, 1, 6, 5(左根右)
分析:通過遞迴實現。因為後序的最後乙個總是根結點,在中序通過該根結點確定左右子樹,並通過start和end分別標出後序與中序左右子樹範圍。最後對左子樹與右子樹使用同樣的方法。
實現**如下:
#include using namespace std;
int post = ;
int in = ;
void pre(int startpost,int endpost,int startinorder, int endinorder)
int main()
執行結果如下:
已知前序(先序)與中序輸出後序
已知前序 先序 與中序輸出後序 前序 1,2,3,4,5,6 根左右 中序 3,2,4,1,6,5 左根右 分析 因為前序 根左右 最先出現的總是根結點,所以令root為前序中當前的根結點下標 並且同時把一棵樹分為左子樹和右子樹 start為當前需要列印的子樹在中序中的最左邊的下標,end為當前需要...
已知前序(先序)與中序輸出後序
已知前序 先序 與中序輸出後序 前序 1,2,3,4,5,6 根左右 中序 3,2,4,1,6,5 左根右 分析 因為前序 根左右 最先出現的總是根結點,所以令root為前序中當前的根結點下標 並且同時把一棵樹分為左子樹和右子樹 start為當前需要列印的子樹在中序中的最左邊的下標,end為當前需要...
已知前序(先序)與中序輸出後序
已知前序 先序 與中序輸出後序 前序 1,2,3,4,5,6 根左右 中序 3,2,4,1,6,5 左根右 分析 因為前序 根左右 最先出現的總是根結點,所以令root為前序中當前的根結點下標 並且同時把一棵樹分為左子樹和右子樹 start為當前需要列印的子樹在中序中的最左邊的下標,end為當前需要...