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

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

1020. Tree Traversals 解析

2019-11-11 02:31:00
字體:
來源:轉載
供稿:網友

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

#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;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 天峻县| 临桂县| 东明县| 平顺县| 福安市| 贵港市| 三江| 会宁县| 都安| 慈利县| 颍上县| 高阳县| 缙云县| 绥棱县| 介休市| 左权县| 红桥区| 易门县| 丽水市| 蒙自县| 昆山市| 安岳县| 百色市| 元朗区| 平和县| 盈江县| 武安市| 济南市| 自治县| 永平县| 屏山县| 福泉市| 冷水江市| 靖边县| 利津县| 永年县| 繁峙县| 颍上县| 政和县| 勃利县| 龙山县|