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 |