From b9659f0ae3b4766cccea4f6f62d883cd61f98620 Mon Sep 17 00:00:00 2001 From: Steve Lee Date: Sun, 10 Dec 2017 22:57:14 +0800 Subject: avl_tree impl --- .../data_structures/chapter_4/avl_tree.h | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Computer_Science/data_structures/chapter_4/avl_tree.h (limited to 'Computer_Science/data_structures/chapter_4/avl_tree.h') 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 -- cgit v1.2.3