Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ====== this is in bst.c
- #include <stdio.h>
- #include <stdlib.h>
- #include "bst.h"
- // Input: 'size': size of an array
- // Output: a pointer of type BStree,
- // i.e. a pointer to an allocated memory of BStree_struct type
- // Effect: dynamically allocate memory of type BStree_struct
- // allocate memory for a Node array of size+1 for member tree_nodes
- // allocate memory for an unsigned int array of size+1 for member free_nodes
- // set member size to 'size';
- // set entry free_nodes[i] to i
- // set member top to 1;
- // set member root to 0;
- BStree bstree_ini(int size) {
- BStree_struct *treePoint = (BStree_struct*)malloc(sizeof(BStree_struct));
- treePoint->tree_nodes = (Node*)malloc((size + 1) * sizeof(Node));
- treePoint->free_nodes = (unsigned int*)malloc((size + 1) * sizeof(unsigned int));
- treePoint->size = size;
- for (int i = 0; i < size; i++) {
- treePoint->free_nodes[i] = i;
- }
- treePoint->top = 1;
- treePoint->root = 0;
- }
- // Input: 'bst': a binary search tree
- // 'key': a pointer to Key
- // 'data': an integer
- // Effect:'data' with 'key' is inserted into 'bst'
- // if 'key' is already in 'bst', do nothing
- void bstree_insert(BStree bst, Key* key, Data data) {
- }
- // Input: 'bst': a binary search tree
- // Effect: print all the nodes in bst using in order traversal
- void bstree_traversal(BStree bst) {
- }
- // Input: 'bst': a binary search tree
- // Effect: all dynamic memory used by bst are freed
- void bstree_free(BStree bst) {
- free(bst->tree_nodes);
- free(bst->free_nodes);
- free(bst);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement