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

MultiPlatform

  1. /*******************************************************************************
  2. +
  3. +  LEDA-R  3.2.3
  4. +
  5. +  prio_impl.h
  6. +
  7. +  Copyright (c) 1995  by  Max-Planck-Institut fuer Informatik
  8. +  Im Stadtwald, 66123 Saarbruecken, Germany     
  9. +  All rights reserved.
  10. *******************************************************************************/
  11. class PRIO_IMPL
  12. private:
  13. PRIO_IMPL_DATA
  14. virtual int  cmp(GenPtr, GenPtr) const = 0;
  15. virtual int  int_type()          const = 0;
  16. virtual void clear_key(GenPtr&)  const = 0;
  17. virtual void clear_inf(GenPtr&)  const = 0;
  18. virtual void copy_key(GenPtr&)   const = 0;
  19. virtual void copy_inf(GenPtr&)   const = 0;
  20. protected:
  21.  PRIO_IMPL_ITEM item(void* p) const { return PRIO_IMPL_ITEM(p); }
  22. public:
  23.  PRIO_IMPL();
  24.  PRIO_IMPL(int);
  25.  PRIO_IMPL(int,int);
  26.  PRIO_IMPL(const PRIO_IMPL&);
  27. virtual ~PRIO_IMPL();
  28. PRIO_IMPL& operator=(const PRIO_IMPL&);
  29. PRIO_IMPL_ITEM insert(GenPtr,GenPtr);
  30. PRIO_IMPL_ITEM find_min() const;
  31. PRIO_IMPL_ITEM first_item() const;
  32. PRIO_IMPL_ITEM next_item(PRIO_IMPL_ITEM) const;
  33. GenPtr key(PRIO_IMPL_ITEM) const;
  34. GenPtr inf(PRIO_IMPL_ITEM) const;
  35. void del_min();
  36. void del_item(PRIO_IMPL_ITEM);
  37. void decrease_key(PRIO_IMPL_ITEM,GenPtr);
  38. void change_inf(PRIO_IMPL_ITEM,GenPtr);
  39. void clear();
  40.  
  41. int  size()  const;
  42. };