[c언어] 이진 트리
이진 트리는 데이터를 저장하고 탐색하는 구조로 많이 사용됩니다. 이번 포스트에서는 C언어로 이진 트리를 구현하는 방법에 대해 알아보겠습니다.
이진 트리의 개념
이진 트리는 각 노드가 최대 두 개의 자식 노드를 가지는 트리 구조입니다. 각 노드는 데이터와 왼쪽 자식 노드와 오른쪽 자식 노드에 대한 포인터를 가지고 있습니다.
C언어로 이진 트리 구현하기
#include <stdio.h>
#include <stdlib.h>
struct TreeNode {
int data;
struct TreeNode* left;
struct TreeNode* right;
};
struct TreeNode* createNode(int data) {
struct TreeNode* newNode = (struct TreeNode*)malloc(sizeof(struct TreeNode));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
int main() {
struct TreeNode* root = createNode(1);
root->left = createNode(2);
root->right = createNode(3);
root->left->left = createNode(4);
root->left->right = createNode(5);
return 0;
}
위의 코드에서는 struct TreeNode
을 정의하고 createNode
함수를 사용하여 노드를 생성하고 초기화합니다. 그 후에 main
함수에서 해당 노드들을 연결하여 이진 트리를 구성합니다.
마무리
C언어를 사용하여 이진 트리를 구현하는 방법을 살펴봤습니다. 이진 트리는 데이터 구조 및 탐색 알고리즘에서 중요한 개념이므로, C언어뿐만 아니라 다른 프로그래밍 언어에서도 유용하게 활용될 수 있습니다.
더 많은 정보를 찾으려면 다음 자료를 참고해 보세요.