Skip to content

Instantly share code, notes, and snippets.

@Nosferatu31
Created October 25, 2016 22:10
Show Gist options
  • Save Nosferatu31/f29884cb287b7cd7ee43c30693c7b05d to your computer and use it in GitHub Desktop.
Save Nosferatu31/f29884cb287b7cd7ee43c30693c7b05d to your computer and use it in GitHub Desktop.
Generic AVL trees module in C (Header)
typedef enum balancefactor { LH , EH , RH } BalanceFactor;
typedef struct treenode *Tree;
Tree createTree(void);
void emptyTree(Tree t);
int treeHeight(Tree t);
int treeSize(Tree t);
int isEmpty(Tree t);
int compareStrings(void *s1 , void *s2);
int searchKey(Tree t, void* e, int (*f)(void* , void*));
Tree insertTree(Tree t, void* e, int *cresceu, int (*f)(void* , void*));
Tree insertRight(Tree t, void* e, int *cresceu, int (*f)(void* , void*));
Tree balanceRight(Tree t);
Tree insertLeft(Tree t, void* e, int *cresceu, int (*f)(void* , void*));
Tree balanceLeft(Tree t);
Tree rotateLeft(Tree t);
Tree rotateRight(Tree t);
void TreeToArrayStrings(Tree t, int *pos, int linesize, char** array, char* (*toStr)(void*));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment