国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

1020. Tree Traversals 解析

2019-11-11 03:52:34
字體:
來源:轉載
供稿:網友

我是直接由后序 和中序建樹 然后 層序遍歷。

#include <iostream>#include <vector>#include <queue>using namespace std;vector <int> post;vector <int> in;int N, Count = 0;struct Node {	int data;	Node * L;	Node * R;};typedef Node * Tree;Tree BuildTree(int inst,int ined, int postst ,int posted) {	Tree t = new Node;#ifdef _DEBUG	cout << "in: " << inst << " " << ined ;	cout << " Post: " << postst << " " << posted << endl;#endif	if (postst <= posted) {		t->data = post[posted];#ifdef _DEBUG		cout << post[posted] << endl;#endif		int L = 0; int R = 0; int tempI = 0;		bool isFind = false, isLR = false;		for (int i = inst; i <= ined; i++) {			if (in[i] == post[posted]) {				isFind = true;				isLR = true;				tempI = i;			}			if (!isLR) L++;			else R++;		}		R--;#ifdef _DEBUG		cout << "L " << L << " R " << R << endl;#endif		if (isFind) {			t->L = BuildTree(inst, tempI - 1, postst, postst + L - 1);			t->R = BuildTree(tempI + 1, ined, postst + L, posted - 1);		}		else return NULL;	}	else t = NULL;	return t;}void PReOrder(Tree T) {	if(T){		cout << T->data << " ";		PreOrder(T->L);		PreOrder(T->R);	}}vector <int> s;void LevelOrder(Tree T) {	queue <Tree> q;	Tree temp;	if (T) {		q.push(T);		while (!q.empty()) {			temp = q.front();//			cout << q.size() << endl;			s.push_back(temp->data);			q.pop();			if (temp->L) q.push(temp->L);			if (temp->R) q.push(temp->R);		}	}}int main() {	int  temp;	cin >> N;	for (int i = 0; i < N; i++) {		cin >> temp;		post.push_back(temp);	}	for (int i = 0; i < N; i++) {		cin >> temp;		in.push_back(temp);	}	Tree T = BuildTree(0,N-1,0,N-1);	//PreOrder(T);	LevelOrder(T);		for (int i = 0; i < s.size() - 1; i++) {		cout << s[i] << " ";	}	cout << s[s.size()- 1] << endl;	system("pause");	return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 托里县| 商河县| 宁南县| 四川省| 红安县| 徐汇区| 德惠市| 安平县| 江西省| 安达市| 新田县| 平武县| 五大连池市| 瑞安市| 铜陵市| 富阳市| 房山区| 仁寿县| 马鞍山市| 广平县| 祁门县| 广水市| 江源县| 新龙县| 凉城县| 陆河县| 治多县| 广水市| 永春县| 和龙市| 尉氏县| 镇平县| 林州市| 镶黄旗| 西吉县| 临颍县| 涟水县| 阿荣旗| 宁乡县| 华坪县| 安龙县|