aboutsummaryrefslogtreecommitdiff
path: root/Computer_Science/data_structures/chapter_4/avl_tree.h
diff options
context:
space:
mode:
authorSteve Lee <me@xiangyangli.com>2017-12-10 22:57:14 +0800
committerSteve Lee <me@xiangyangli.com>2017-12-10 22:57:14 +0800
commitb9659f0ae3b4766cccea4f6f62d883cd61f98620 (patch)
treed485d99ac36651950a58f9867619eb3bd77143b2 /Computer_Science/data_structures/chapter_4/avl_tree.h
parent1ab42d462e335898902c6513c7f71c5a591c945a (diff)
download42-b9659f0ae3b4766cccea4f6f62d883cd61f98620.tar.xz
42-b9659f0ae3b4766cccea4f6f62d883cd61f98620.zip
avl_tree impl
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