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

MultiPlatform

  1. begingroup
  2. parskip 0ptbaselineskip 0pt
  3. tt {ttobeyspacesgdef {hskip.5em}} defpar{leavevmodeendgraf} catcode``=active
  4. obeylines ttverbatim
  5. typedef ... seq_impl_item;
  6. class seq_impl  {
  7.  virtual int  cmp(GenPtr, GenPtr) const = 0;
  8.  virtual int  int_type()          const = 0;
  9.  virtual void clear_key(GenPtr&)  const = 0;
  10.  virtual void clear_inf(GenPtr&)  const = 0;
  11.  virtual void copy_key(GenPtr&)   const = 0;
  12.  virtual void copy_inf(GenPtr&)   const = 0;
  13. public:
  14.  seq_impl();
  15.  seq_impl(const seq_impl&);
  16. ~seq_impl();
  17.  seq_impl& operator=(const seq_impl&);
  18.  seq_impl& conc(seq_impl&);
  19.  
  20.  seq_impl_item insert(GenPtr,GenPtr);
  21.  seq_impl_item insert_at_item(seq_impl_item,GenPtr,GenPtr);
  22.  seq_impl_item lookup(GenPtr)      const;
  23.  seq_impl_item locate(GenPtr)      const;
  24.  seq_impl_item locate_pred(GenPtr) const;
  25.  seq_impl_item succ(seq_impl_item) const;
  26.  seq_impl_item pred(seq_impl_item) const;
  27.  seq_impl_item item(void* p) const { return seq_impl_item(p); }
  28.  
  29.  GenPtr key(seq_impl_item) const;
  30.  GenPtr inf(seq_impl_item) const;
  31.  
  32.  void del(GenPtr); 
  33.  void del_item(seq_impl_item); 
  34.  void change_inf(seq_impl_item,GenPtr);
  35.  void split_at_item(seq_impl_item,seq_impl&,seq_impl&);
  36.  void reverse_items(seq_impl_item,seq_impl_item); 
  37.  void clear();
  38.  
  39.  int  size()  const;
  40. };
  41. endgroup