728x90
트리에 대한 기본 개념(자식, 루트 노드 등)을 알고 있다는 것을 전제로 합니다. + 재귀함수
전위 순회 (Preorder)는 트리를 순회하는 방법 중 하나로,
[루트 노드 -> 왼쪽 자식 -> 오른쪽 노드] 순서대로 순회한다.
[ A -> B -> D -> E -> C -> F -> G ]
이 순서로 순회를 한다.
이를 C언어로 구현하면 다음과 같다.
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
31
32
33
|
#include <stdio.h>
typedef struct TreeNode
{
int data;
struct TreeNode *left, *right;
} treenode;
treenode n1 = {5, NULL, NULL};
treenode n2 = {10, &n1, NULL};
treenode n3 = {20, NULL, NULL};
treenode n4 = {30, NULL, NULL};
treenode n5 = {25, &n3, &n4};
treenode n6 = {15, &n2, &n5};
treenode *root = &n6;
// 15
// / \
// 10 25
// / / \
// 5 20 30
void preorder(treenode* node){
if(node != NULL){
printf("%d ", node->data);
preorder(node->left);
preorder(node->right);
}
return;
}
int main(){
preorder(root);
}
|
cs |
[ 15 10 5 25 20 30 ] 순서대로 출력이 된다.
728x90
'코딩 > 잡다한 C언어' 카테고리의 다른 글
<String.h> 유용한 함수 (0) | 2023.12.17 |
---|---|
중위 순회 구현 (0) | 2023.11.30 |
후위 순회 구현 (0) | 2023.11.29 |
C언어로 Single Linked List 구현하기 (0) | 2023.06.02 |
C언어로 Midi 입력을 받는 코드 만들기 (0) | 2023.05.24 |