Загрузка данных


#ifndef BST_H
#define BST_H

typedef struct s_btree {
    struct s_btree *left;
    struct s_btree *right;
    int item;
} t_btree;

t_btree *bstree_create_node(int item);
void bstree_destroy(t_btree *root);

#endif



#include "bst.h"

#include <stdlib.h>

t_btree *bstree_create_node(int item) {
    t_btree *node = malloc(sizeof(t_btree));

    if (node != NULL) {
        node->left = NULL;
        node->right = NULL;
        node->item = item;
    }

    return node;
}

void bstree_destroy(t_btree *root) {
    if (root != NULL) {
        bstree_destroy(root->left);
        bstree_destroy(root->right);
        free(root);
    }
}


#include <stdio.h>

#include "bst.h"

#define SUCCESS "SUCCESS"
#define FAIL "FAIL"

void bst_create_test(int value);

int main(void) {
    bst_create_test(4);
    bst_create_test(10);

    return 0;
}

void bst_create_test(int value) {
    t_btree *node = bstree_create_node(value);

    printf("bst_create_test input: %d result: ", value);

    if (node != NULL && node->item == value && node->left == NULL && node->right == NULL) {
        printf("%s", SUCCESS);
    } else {
        printf("%s", FAIL);
    }

    printf("\n");
    bstree_destroy(node);
}


CC = gcc
CFLAGS = -Wall -Wextra -Werror -std=c11
BUILD_DIR = ../build

.PHONY: all clean rebuild door_struct list_test stack_test print_module documentation_module bst_create_test

all: door_struct list_test stack_test print_module documentation_module bst_create_test

$(BUILD_DIR):
	mkdir -p $(BUILD_DIR)

door_struct: $(BUILD_DIR)
	$(CC) $(CFLAGS) dmanager_module.c -o $(BUILD_DIR)/Quest_1

list_test: $(BUILD_DIR)
	$(CC) $(CFLAGS) list.c list_test.c -o $(BUILD_DIR)/Quest_2

stack_test: $(BUILD_DIR)
	$(CC) $(CFLAGS) stack.c stack_test.c -o $(BUILD_DIR)/Quest_3

print_module: $(BUILD_DIR)
	$(CC) $(CFLAGS) print_module.c main_module_entry_point.c -o $(BUILD_DIR)/Quest_4

documentation_module: $(BUILD_DIR)
	$(CC) $(CFLAGS) print_module.c documentation_module.c main_module_entry_point.c -o $(BUILD_DIR)/Quest_5

bst_create_test: $(BUILD_DIR)
	$(CC) $(CFLAGS) bst.c bst_create_test.c -o $(BUILD_DIR)/Quest_6

clean:
	rm -rf $(BUILD_DIR)

rebuild: clean all