하루 1문제 챌린지/Silver1

백준 1991번 트리순회 (C++)

그린푸딩 2024. 2. 2. 15:48
728x90
반응형
#include <iostream>
#include <vector>
#include<map>

using namespace std;

map<char, pair<char, char>>tree;

void preorder(char node) {

	if (node == '.')return;
	cout << node; 
	preorder(tree[node].first);
	preorder(tree[node].second);
}
void inorder(char node) {

	if (node == '.')return;
	inorder(tree[node].first);
	cout << node;
	inorder(tree[node].second);
}

void postorder(char node) {

	if (node == '.')return;
	postorder(tree[node].first);
	postorder(tree[node].second);
	cout << node;

}


int main()
{

	int n;
	cin >> n;

	char node, left, right; 
	for (int i = 0; i < n; i++) {
		cin >> node >> left >> right; 
		tree[node] = { left,right };
	}
	char A = 'A';
	//전위 순회
	preorder(A); cout << '\n';

	//중위 순회
	inorder(A); cout << '\n';

	//후위 순회 
	postorder(A);





}
728x90
반응형