본문 바로가기

C

[C] 재귀함수를 만드는 Global 변수 vs argument C로 코딩을 하다가, 문득 문제를 만났다!! 짜고자 하는 함수는, tree의 중위순회한 결과 (작은 값부터 오름차순으로)를 arr에 담아주는 함수이다. 함수는 짧으니 아래를 보며 이해하자! int i = 0; int inorder_array(node_t *n, key_t *arr) { if (n) { inorder_array(n -> left, arr); // printf("%d \n %d \n", n -> key, i); arr[i++] = n -> key; inorder_array(n -> right, arr); } return 0; } 이렇게 짤 경우, int i = 0 이라고 i라는 global 변수를 선언했다. 그래서 함수 내부에서 i 값을 증가시키고, arr[i]에 중위순회의 값을 넣어주는 방.. 더보기
이진 탐색 트리(Binary Search Tree) C로 구현하기 #include #include typedef struct _Node { int value; struct _Node *left_child; struct _Node *right_child; }Node; Node* search(Node *root, int x); Node* insert(Node *root, int x); Node* find_min(Node *root); Node* delete(Node *root, int x); int count = 0; int main() { Node *root; int N; int i, input; root = NULL; scanf("%d", &N); for (i = 0; i < N; i++) { scanf("%d", &input); root = insert(root, i.. 더보기
RB Tree [레드 블랙 트리] https://ko.wikipedia.org/wiki/%EB%A0%88%EB%93%9C-%EB%B8%94%EB%9E%99_%ED%8A%B8%EB%A6%AC 레드-블랙 트리 - 위키백과, 우리 모두의 백과사전 레드-블랙 트리(Red-black tree)는 자가 균형 이진 탐색 트리(self-balancing binary search tree)로서, 대표적으로는 연관 배열 등을 구현하는 데 쓰이는 자료구조다. 1978년 레오 귀바스(Leo J. Guibas)와 로버트 ko.wikipedia.org Red-Black Tree Red-Black Tree(이하 rb)는 이진 트리의 한 종류이다. 그 중에서도 balanced search tree의 하나이다. rb는 자료의 삽입과 삭제, 검색에서 최악의 경우에도 O.. 더보기