[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언어뿐만 아니라 다른 프로그래밍 언어에서도 유용하게 활용될 수 있습니다.

더 많은 정보를 찾으려면 다음 자료를 참고해 보세요.