left child와 right child를 가진 트리 구조.


[소스코드]

typedef struct _Node Node;

struct _Node{
	Node* left_child;
	int data;
	Node* right_child;
};

void insert_node(Node** root, int data) {
	if(*root == NULL) {
		Node* node = (Node*)malloc(sizeof(Node));
		node->data = data;
		node->left_child = NULL;
		node->right_child = NULL;

		(*root) = node;
	}

	else if(data < (*root)->data) {
		insert_node(&((*root)->left_child), data);
	}

	else if(data >= (*root)->data) {
		insert_node(&((*root)->right_child), data);
	}
}

int main() {
	Node* root = NULL;

	insert_node(&root, 5);
	insert_node(&root, 8);
	insert_node(&root, 4);
	insert_node(&root, 2);
	insert_node(&root, 1);
	insert_node(&root, 3);
	insert_node(&root, 9);
	insert_node(&root, 6);
	insert_node(&root, 7);
}


'Develop' 카테고리의 다른 글

이진 트리_중위 순회(Inorder Traversal)  (0) 2014.02.11
이진 트리_전위 순회(Preorder Traversal)  (0) 2014.02.11
링크드 큐(Linked Queue)  (0) 2014.02.11
링크드 스택(Linked Stack)  (0) 2014.02.11
원형 큐(Circular Queue)  (0) 2014.02.10

+ Recent posts