ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 이진 검색 트리
    C연습 2021. 1. 17. 11:48
    #include <stdio.h>
    #include <stdlib.h>
    #define MAX_NODE_NUM 10000
    
    typedef int element;
    typedef struct tree {
    	element key;
    	struct tree *left, *right;
    }tree;
    
    tree *new_node(int item) {
    	tree *temp = (tree *)malloc(sizeof(tree));
    	temp->key = item;
    	temp->left = temp->right = NULL;
    	return temp;
    }
    
    tree *insert_node(tree *node, int key) {
    	if (node == NULL) return new_node(key);
    	if (key < node->key)
    		node->left = insert_node(node->left, key);
    	else if (key > node->key)
    		node->right = insert_node(node->right, key);
    
    	return node;
    }
    
    tree *order(tree *node, int key[], int count) {
    	node = insert_node(node, key[0]);
    
    	for (int i = 1; i < count; i++)
    	{
    		if (node->key > key[i])
    			node->left = insert_node(node->left, key[i]);
    		else if (node->key < key[i])
    			node->right = insert_node(node->right, key[i]);
    	}
    
    	return node;
    }
    
    void preorder(tree *node) {
    	if (node != NULL) {
    		preorder(node->left);
    		preorder(node->right);
    		printf("%d\n", node->key);
    	}
    }
    
    int main() {
    	int key_num[MAX_NODE_NUM];
    	int count = 0;
    	int node_num = 0;
    	tree *node = NULL;
    
    	scanf_s("%d", &count);
    
    	for (int m = 0; m < count; m++)
    	{
    		scanf_s(" %d", &key_num[m]);
    	}
    
    	node = order(node, key_num,count );
    
    	preorder(node);
    
    	return 0;
    }

    'C연습' 카테고리의 다른 글

    프린터_우선순위_queue  (0) 2021.01.17
    queue  (0) 2021.01.17
    원형큐_소수고리  (0) 2021.01.17
    연결 리스트  (0) 2021.01.17
    stack 괄호 짝 맞추기  (0) 2021.01.17

    댓글

Designed by Tistory.