已知中序與後序,或者中序與先序,構造二叉樹

2021-04-23 01:53:39 字數 1396 閱讀 1887

/*

name: 已知中序與後序,或者中序與先序,構造二叉樹

author: goal00001111

date: 08-12-08 11:42

description:

描述 description      

給出一棵二叉樹的中序與後序排列。求出它的先序排列。

給出一棵二叉樹的中序與先序排列。求出它的後序排列。

*/#include

#include

using namespace std;

typedef struct btnode *btree;

void postbtree(btree & t, string mid, string post, int lm, int rm, int lp, int rp);

void prebtree(btree & t, string mid, string pre, int lm, int rm, int lp, int rp);

void preorder(btree p);  //先序遍歷

void postorder(btree p); //後序遍歷

int main(int argc, char* argv)

/*函式名稱:postbtree

函式功能:給出一棵二叉樹的中序與後序序列,構造這棵二叉樹。

輸入引數: btree & t:二叉樹的結點t

string mid:儲存了二叉樹的中序序列的字串

string post:儲存了二叉樹的後序序列的字串

int lm, int rm:二叉樹的中序序列在陣列mid中的左右邊界

int lp, int rp:二叉樹的後序序列在陣列post中的左右邊界

*/void postbtree(btree & t, string mid, string post, int lm, int rm, int lp, int rp)

/*函式名稱:prebtree

函式功能:給出一棵二叉樹的中序與先序序列,構造這棵二叉樹。

輸入引數: btree & t:二叉樹的結點t

string mid:儲存了二叉樹的中序序列的字串

string pre:儲存了二叉樹的先序序列的字串

int lm, int rm:二叉樹的中序序列在陣列mid中的左右邊界

int lp, int rp:二叉樹的先序序列在陣列post中的左右邊界

*/void prebtree(btree & t, string mid, string pre, int lm, int rm, int lp, int rp)

//先序遍歷

void preorder(btree p)

}//後序遍歷

void postorder(btree p)

}

已知前序(先序)與中序輸出後序

已知前序 先序 與中序輸出後序 前序 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為當前需要...