tree = new_tree()
: RB tree 구조체 생성
/* 1. RB tree 구조체 생성 */
// 트리를 생성하는 함수
rbtree *new_rbtree(void) {
// rbtree 구조체에 대한 동적 할당
rbtree *t = (rbtree *)calloc(1, sizeof(rbtree));
// nil 노드 생성 및 초기화
node_t *nil_node = (node_t *)calloc(1,sizeof(node_t)); // nil 노드 동적 할당
// nil 노드는 언제나 검정
nil_node->color = RBTREE_BLACK;
t->nil = nil_node; // rbtree 구조체의 nil 포인터에 nil 노드 할당
t->root = nil_node; // rbtree 구조체의 root 포인터에 nil 할당
return t;
}
💡 nil node를 사용하여 구현하기 위해 test/Makefile
에서 CFLAGS
변수에 -DSENTINEL
이 추가되도록 comment를 제거한다!