rueki
이진트리 순회 본문
728x90
반응형
이진트리 구조
typedef struct{
int data; //노드 데이터
struct Node *leftChild;
struct Node *rightChild;
}Node;
Node* initNode(int data, Node* leftChild, Node* rightChild){
Node* node = (Node*)malloc(sizeof(Node));
node->data = data;
node->leftChild = leftChild;
node->rightChild = rightChild;
return node;
}
전위 순회
자기 자신 - 왼쪽 노드 - 오른쪽 노드
void preorder(Node* root){
if(root){
printf("%d",root->data);
preorder(root->leftChild);
preorder(root->rightChild);
}
}
중위 순회
왼쪽 자식 - 자기 자신 - 오른쪽 자식
void inorder(Node* root){
if(root){
inorder(root->leftChild);
printf("%d", root->data);
inorder(root->rightChild);
}
}
후위 순회
왼쪽 자식 - 오른쪽 자식 - 자기 자신
void postorder(Node* root){
if(root){
postorder(root->leftChild);
postorder(root->rightChild);
printf("%d",data);
}
}
메인 함수
int main(void){
Node* n7 = initNode(50, NULL, NULL);
Node* n6 = initNode(37, NULL, NULL);
Node* n5 = initNode(23, NULL, NULL);
Node* n4 = initNode(5, NULL, NULL);
Node* n3 = initNode(48, n6, n7);
Node* n2 = initNode(17, n4, n5);
Node* n1 = initNode(30, n2, n3);
preorder(n1);
printf("/n");
inorder(n1);
printf("\n");
postorder(n1);
system("pause");
return 0;
}
728x90
반응형
'C, C++ 문제풀이' 카테고리의 다른 글
BOJ 2609 최대공약수와 최소공배수 (0) | 2020.10.26 |
---|---|
프로그래머스- 타겟넘버(DFS) (0) | 2020.10.21 |
SW Expert Academy 8500. 극장 좌석 (0) | 2020.04.15 |
SW Expert Academy 8673. 코딩 토너먼트1 (0) | 2020.04.14 |
SW Expert Academy 8821. 적고 지우기 (0) | 2020.04.12 |
Comments