#if !defined TREEBUFFER_H
#define TREEBUFFER_H

typedef struct Node Node;
typedef struct Tree Tree;

void delete(Tree * tree);
void get(Tree * tree, Node * ancestors[]);
/* Adds a node to a old tree, results in a new tree */
Tree * add(Tree * tree, int data);
/* Creates a new tree */
Tree * empty(int history);
/* Get the data in a node */
int get_data(Node * node);

/* 
 * The interface added for checking the property of the heap sizes
 */

/* 
 * Check if the size of the heap is less than the space bound
 * Space(tree), where Space(tree) is the computed space bound over the
 * tree.
 */
void check_heap_inbound(size_t heap_size, Tree * tree);


#endif
