이지트리에서의 깊이우선탐색(depth first search)을 통한, 전위 중위 후위 순회 in C++

Purple·2021년 9월 11일
0

root가 1이고, 1~7까지의 원소들로 이루어진 완전 이진트리라고 생각해보자.
---1
--2 3
4 5 6 7

1. 전위 순회

#include <iostream>

using namespace std;
void DFS(int a) {
	if (a > 7) return;
	else {
		cout << a << " ";
		DFS(2*a);
		DFS((2*a)+1);
	}
}

int main() {
	freopen("input.txt", "rt", stdin);
	DFS(1);
	return 0;
}

2. 중위 순회

void DFS(int a) {
	if (a > 7) return;
	else {
		DFS(2*a);
		cout << a << " ";
		DFS((2*a)+1);
	}
}

3. 후위 순회

void DFS(int a) {
	if (a > 7) return;
	else {
		DFS(2*a);
		DFS((2*a)+1);
		cout << a << " ";
	}
}

  • 전위, 중위, 후위 순회는 각 재귀적으로 불리는 DFS의 함수부분에서, 호출하는 함수를 바꿔주면 된다.
profile
안녕하세요.

0개의 댓글