알고리즘과 자료구조/SWEA

SWEA 1231 Inorder

bggbr 2019. 10. 23. 19:36

SWEA 1231 Inorder 문제


#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;
#define endl "\n"

typedef struct _NODE{
    char Data;
    _NODE *Left;
    _NODE *Right;
}NODE;

int tc = 10;
int totalNum;
bool flag = false;
NODE *arr[101];

void inorder(NODE* tmp){
    if(tmp == NULL){
        return;
    }
    inorder(tmp -> Left);
    cout << tmp -> Data;
    inorder(tmp -> Right);
}

int main(void){
    for(int k = 1; k <= tc; k++) {
        cin >> totalNum;
        if (totalNum % 2 == 1)
            flag = true;
        else
            flag = false;
        for (int i = 1; i <= totalNum; i++) {
            arr[i] = (NODE *)malloc(sizeof(NODE));
        }
        for (int i = 1; i <= totalNum; i++) {
            int num, child1, child2;
            char Data;
            if (flag) {
                if (i <= (totalNum / 2)) {
                    cin >> num >> Data >> child1 >> child2;
                    arr[i]->Data = Data;
                    arr[i]->Left = arr[child1];
                    arr[i]->Right = arr[child2];
                } else {
                    cin >> num >> Data;
                    arr[i]->Data = Data;
                    arr[i]->Left = NULL;
                    arr[i]->Right = NULL;
                }
            } else {
                if (i <= (totalNum / 2) - 1) {
                    cin >> num >> Data >> child1 >> child2;
                    arr[i]->Data = Data;
                    arr[i]->Left = arr[child1];
                    arr[i]->Right = arr[child2];
                } else if (i == (totalNum / 2)) {
                    cin >> num >> Data >> child1;
                    arr[i]->Data = Data;
                    arr[i]->Left = arr[child1];
                } else {
                    cin >> num >> Data;
                    arr[i]->Data = Data;
                    arr[i]->Left = NULL;
                    arr[i]->Right = NULL;
                }
            }
        }
        cout << "#" << k << " ";
        inorder(arr[1]);
        cout << endl;
    }
}

'알고리즘과 자료구조 > SWEA' 카테고리의 다른 글

SWEA 1217 거듭제곱  (0) 2019.10.24
SWEA 1954 달팽이 숫자  (0) 2019.10.24