#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