avl_tree.h
上传用户:gzelex
上传日期:2007-01-07
资源大小:707k
文件大小:1k
开发平台:

MultiPlatform

  1. /*******************************************************************************
  2. +
  3. +  LEDA-R  3.2.3
  4. +
  5. +  avl_tree.h
  6. +
  7. +  Copyright (c) 1995  by  Max-Planck-Institut fuer Informatik
  8. +  Im Stadtwald, 66123 Saarbruecken, Germany     
  9. +  All rights reserved.
  10. *******************************************************************************/
  11. #ifndef LEDA_AVL_TREE1_H
  12. #define LEDA_AVL_TREE1_H
  13. //------------------------------------------------------------------------------
  14. //
  15. // avl_tree:
  16. //
  17. //           AVL trees (derived from bin_tree)
  18. //
  19. // Stefan N"aher (1993)
  20. //
  21. //------------------------------------------------------------------------------
  22. #include <LEDA/basic.h>
  23. #include <LEDA/impl/bin_tree.h>
  24.  
  25. typedef bin_tree_node* avl_tree_item;
  26.  
  27. class avl_tree : public bin_tree
  28.   // balance of node v with right (left) subtree R (L)
  29.   // bal(v) =  height(R) - height(L) in [-1 ... +1]
  30.   //
  31.   // all created nodes have balance 0
  32.   int root_balance() { return 0; }
  33.   int leaf_balance() { return 0; }
  34.   int node_balance() { return 0; }
  35.   void insert_rebal(avl_tree_item);
  36.   void del_rebal(avl_tree_item, avl_tree_item);
  37. public:
  38.   avl_tree() {}
  39.  ~avl_tree() {}
  40.   avl_tree(const avl_tree& T) : bin_tree(T) {}
  41.   avl_tree& operator=(const avl_tree& T) 
  42.   { bin_tree::operator=(T); return *this; }
  43. };
  44. #endif