aboutsummaryrefslogtreecommitdiff
path: root/Computer_Science/data_structures/chapter_4/avl_tree.h
diff options
context:
space:
mode:
Diffstat (limited to 'Computer_Science/data_structures/chapter_4/avl_tree.h')
-rw-r--r--Computer_Science/data_structures/chapter_4/avl_tree.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/Computer_Science/data_structures/chapter_4/avl_tree.h b/Computer_Science/data_structures/chapter_4/avl_tree.h
new file mode 100644
index 0000000..1be3cd6
--- /dev/null
+++ b/Computer_Science/data_structures/chapter_4/avl_tree.h
@@ -0,0 +1,27 @@
+#ifndef _AVL_TREE_H
+#define _AVL_TREE_H
+
+struct AvlNode;
+typedef struct AvlNode *Position;
+typedef struct AvlNode *AvlTree;
+typedef int elem_t;
+
+AvlTree make_empty(AvlTree t);
+Position find(elem_t x, AvlTree t);
+Position find_min(AvlTree t);
+Position find_max(AvlTree t);
+AvlTree insert(elem_t x, AvlTree t);
+AvlTree delete(elem_t x, AvlTree t);
+elem_t retrieve(Position p);
+
+/* for print node, place impl in header file */
+struct AvlNode
+{
+ elem_t elem;
+ AvlTree left;
+ AvlTree right;
+ int height;
+};
+typedef AvlTree Tree;
+
+#endif