Skip to content

Instantly share code, notes, and snippets.

@PotatoPope
Created March 24, 2018 16:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PotatoPope/135d947d0c257eed0abc7e82e095dfda to your computer and use it in GitHub Desktop.
Save PotatoPope/135d947d0c257eed0abc7e82e095dfda to your computer and use it in GitHub Desktop.
treeh
#ifndef TREE_H
#define TREE_H
#include "common.h"
struct tree;
typedef struct tree tree_t;
tree_t *tree_create(cmpfunc_t cmpfunc);
int max(int a, int b);
int height(tree_t *node);
void recalc(tree_t *node);
tree_t* balance(tree_t *node);
tree_t* sortedArrayToBST(int arr[], int start, int end);
int remove_dup(int arr[], int m);
int *merge(int arr1[], int arr2[], int m, int n);
void tree_destroy(tree_t *tree);
int tree_size(tree_t *tree);
int tree_contains(tree_t *node, void *item);
void storeInorder(tree_t *node, int inorder[], int *index_ptr);
int *intersc_count(int arr1[], int arr2[], int m, int n);
int *intersc_init(int arr1[], int arr2[], int m, int n);
int *difference_count(int arr1[], int arr2[], int m, int n);
int *difference_init(int arr1[], int arr2[], int m, int n);
tree_t *tree_union(tree_t *a, tree_t *b, int m, int n);
tree_t *tree_intersection(tree_t *a, tree_t *b, int m, int n);
tree_t *tree_difference(tree_t *a, tree_t *b, int m, int n);
tree_t *tree_copy(tree_t *tree, int m, int n);
tree_t* mergeTrees(tree_t *root1, tree_t *root2, int m, int n);
tree_t *node_add(tree_t *node, void *data);
tree_t *rotate_right(tree_t *node);
tree_t *rotate_left(tree_t *tree);
#endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment