์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ํ๋ก๊ทธ๋๋จธ์ค
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- DFS
- SQL
- ๋์ ํฉ
- ๋จธ์ง์ํธ
- LIS
- DP
- ์ํ
- ํ์ด์ฌ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์ฐ์ ์์ํ
- BFS
- ์๊ณ ๋ฆฌ์ฆ
- ๊ทธ๋ํํ์
- ์ ๋ ฌ
- ๋์ ๊ณํ๋ฒ
- ๋๋น์ฐ์ ํ์
- ๋ฐฑ์ค
- ์์๊ตฌํ๊ธฐ
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- ๋ณํฉ์ ๋ ฌ
- ๊ตฌํ
- ์์ํ์
- ์๋ฃ๊ตฌ์กฐ
- ๊ทธ๋ํ
- ๊ทธ๋ฆฌ๋
- db
- ๊น์ด์ฐ์ ํ์
- ์ค๋ธ์
๐๐ญ๐ฐ๐ธ ๐ฃ๐ถ๐ต ๐ด๐ต๐ฆ๐ข๐ฅ๐บ
[๋ฐฑ์ค] 1991๋ฒ: ํธ๋ฆฌ ์ํ - C++ ๋ณธ๋ฌธ
๋ฌธ์
์ด์ง ํธ๋ฆฌ๋ฅผ ์ ๋ ฅ๋ฐ์ ์ ์ ์ํ(preorder traversal), ์ค์ ์ํ(inorder traversal), ํ์ ์ํ(postorder traversal)ํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์๋ฅผ ๋ค์ด ์์ ๊ฐ์ ์ด์ง ํธ๋ฆฌ๊ฐ ์ ๋ ฅ๋๋ฉด,
- ์ ์ ์ํํ ๊ฒฐ๊ณผ : ABDCEFG // (๋ฃจํธ) (์ผ์ชฝ ์์) (์ค๋ฅธ์ชฝ ์์)
- ์ค์ ์ํํ ๊ฒฐ๊ณผ : DBAECFG // (์ผ์ชฝ ์์) (๋ฃจํธ) (์ค๋ฅธ์ชฝ ์์)
- ํ์ ์ํํ ๊ฒฐ๊ณผ : DBEGFCA // (์ผ์ชฝ ์์) (์ค๋ฅธ์ชฝ ์์) (๋ฃจํธ)
๊ฐ ๋๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์๋ ์ด์ง ํธ๋ฆฌ์ ๋ ธ๋์ ๊ฐ์ N(1 ≤ N ≤ 26)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฑธ์ณ ๊ฐ ๋ ธ๋์ ๊ทธ์ ์ผ์ชฝ ์์ ๋ ธ๋, ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋๊ฐ ์ฃผ์ด์ง๋ค. ๋ ธ๋์ ์ด๋ฆ์ A๋ถํฐ ์ฐจ๋ก๋๋ก ์ํ๋ฒณ ๋๋ฌธ์๋ก ๋งค๊ฒจ์ง๋ฉฐ, ํญ์ A๊ฐ ๋ฃจํธ ๋ ธ๋๊ฐ ๋๋ค. ์์ ๋ ธ๋๊ฐ ์๋ ๊ฒฝ์ฐ์๋ .์ผ๋ก ํํํ๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ ์ ์ํ, ๋์งธ ์ค์ ์ค์ ์ํ, ์ ์งธ ์ค์ ํ์ ์ํํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค. ๊ฐ ์ค์ N๊ฐ์ ์ํ๋ฒณ์ ๊ณต๋ฐฑ ์์ด ์ถ๋ ฅํ๋ฉด ๋๋ค.
์ด์ง ํธ๋ฆฌ์ ์ ์, ์ค์, ํ์ ์ํ๋ฅผ ์ด์ฉํด์ ํ ์ ์๋ ๊ฐ๋จํ ๋ฌธ์ .
'A'๊ฐ ํญ์ ๋ฃจํธ ๋ ธ๋๊ฐ ๋๊ธฐ ๋๋ฌธ์, 'A'๋ถํฐ ์์ํ ์ํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํด์ฃผ๋ฉด ๋๋ค.
์ฝ๋
#include <cstdio>
#define MAX 27
typedef struct node {
char left;
char right;
} NODE;
NODE arr[MAX];
void pre(char root);
void in(char root);
void post(char root);
int main(void) {
int n;
scanf("%d", &n);
for(int i = 0; i < n; i++) {
getchar();
char a, b, c;
scanf("%c %c %c", &a, &b, &c);
arr[a].left = b;
arr[a].right = c;
}
pre('A');
printf("\n");
in('A');
printf("\n");
post('A');
printf("\n");
return 0;
}
void pre(char root) {
if(root == '.') return;
printf("%c", root);
pre(arr[root].left);
pre(arr[root].right);
}
void in(char root) {
if(root == '.') return;
in(arr[root].left);
printf("%c", root);
in(arr[root].right);
}
void post(char root) {
if(root == '.') return;
post(arr[root].left);
post(arr[root].right);
printf("%c", root);
}
'์ฝ๋ฉํ ์คํธ ์ค๋น > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 2840๋ฒ: ํ์ด์ ๋ฐํด - C++ (0) | 2022.01.13 |
---|---|
[๋ฐฑ์ค] 5624๋ฒ: ์ข์ ์ - C++ (0) | 2022.01.12 |
[๋ฐฑ์ค] 2178๋ฒ: ๋ฏธ๋ก ํ์ - C++ (0) | 2022.01.04 |
[๋ฐฑ์ค] 7576๋ฒ: ํ ๋งํ - C++ (0) | 2022.01.03 |
[๋ฐฑ์ค] 4963๋ฒ: ์ฌ์ ๊ฐ์ - C++ (0) | 2021.12.27 |