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

MultiPlatform

  1. /*******************************************************************************
  2. +
  3. +  LEDA-R  3.2.3
  4. +
  5. +  rb_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_RB_TREE_H
  12. #define LEDA_RB_TREE_H
  13. //------------------------------------------------------------------------------
  14. //
  15. // rb_tree:  red black trees (leaf oriented & doubly linked)
  16. //
  17. //           derived from class "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* rb_tree_item;
  26.  
  27. // ----------------------------------------------------------------
  28. // class rb_tree
  29. // ----------------------------------------------------------------
  30. class rb_tree : public bin_tree
  31.   enum color  { red = 0, black = 1 };
  32.   int root_balance() { return black; }
  33.   int node_balance() { return red; }
  34.   int leaf_balance() { return black; }
  35.   void insert_rebal(rb_tree_item);
  36.   void del_rebal(rb_tree_item, rb_tree_item);
  37. public:
  38.   rb_tree() {}
  39.  ~rb_tree() {}
  40.   rb_tree(const rb_tree& T) : bin_tree(T) {}
  41.   rb_tree& operator=(const rb_tree& T) 
  42.   { bin_tree::operator=(T); return *this; }
  43. };
  44. #endif