백준 1991번: 트리 순회

danbibibi·2021년 11월 2일
0

문제

문제 바로가기> 백준 1991번: 트리 순회

풀이

이차원 배열로 tree를 구현하고, 트리 순회함수를 만들어서 문제를 풀었다.

#include <iostream>
using namespace std;

int tree[26][2];

void preorder(int n){
    if(n==-1) return;
    cout << (char)(n+'A');
    preorder(tree[n][0]);
    preorder(tree[n][1]);
}

void inorder(int n){
    if(n==-1) return;
    inorder(tree[n][0]);
    cout << (char)(n+'A');
    inorder(tree[n][1]);
}

void postorder(int n){
    if(n==-1) return;
    postorder(tree[n][0]);
    postorder(tree[n][1]);
    cout << (char)(n+'A');
}

int main(){
    int n; cin>>n;
    for(int i=0; i<n; i++){
        char parent, leftchild, rightchild;
        cin >> parent >> leftchild >> rightchild;
        parent = parent-'A';

        if(leftchild == '.') tree[parent][0] = -1;
        else tree[parent][0] = leftchild-'A';

        if(rightchild == '.') tree[parent][1] = -1;
        else tree[parent][1] = rightchild-'A';

    }
    preorder(0); cout << '\n';
    inorder(0); cout << '\n';
    postorder(0); cout << '\n';
}

터미널에서 c++ 컴파일 및 실행

자료구조 문제는 c++을 사용해서 꾸준히 연습해 나가기로 했다.

터미널에서 c++ 컴파일 : g++ -o P1991 P1991.cpp
실행 : ./P1991

profile
블로그 이전) https://danbibibi.tistory.com

0개의 댓글