next up previous contents
Next: Tables Up: User Implementations Previous: Priority Queues

Sorted Sequences

 

Any class seq_impl that provides the following operations can be used as actual implementation parameter for the _sortseq< K,I,seq_impl> data type (cf. section Sorted Sequences).

typedef ... seq_impl_item;

class seq_impl  {

  virtual int  cmp(GenPtr, GenPtr) const = 0;
  virtual int  int_type()          const = 0;
  virtual void clear_key(GenPtr&)  const = 0;
  virtual void clear_inf(GenPtr&)  const = 0;
  virtual void copy_key(GenPtr&)   const = 0;
  virtual void copy_inf(GenPtr&)   const = 0;

public:

  seq_impl();
  seq_impl(const seq_impl&);
  virtual ~seq_impl();

  seq_impl& operator=(const seq_impl&);
  seq_impl& conc(seq_impl&);
 
  seq_impl_item insert(GenPtr,GenPtr);
  seq_impl_item insert_at_item(seq_impl_item,GenPtr,GenPtr);
  seq_impl_item lookup(GenPtr) const;
  seq_impl_item locate(GenPtr) const;
  seq_impl_item locate_pred(GenPtr) const;
  seq_impl_item succ(seq_impl_item) const;
  seq_impl_item pred(seq_impl_item) const;
  seq_impl_item item(void* p) const 
  { return seq_impl_item(p); }
 
  GenPtr key(seq_impl_item) const;
  GenPtr inf(seq_impl_item) const;
 
  void del(GenPtr); 
  void del_item(seq_impl_item); 
  void change_inf(seq_impl_item,GenPtr);
  void split_at_item(seq_impl_item,seq_impl&,seq_impl&);
  void reverse_items(seq_impl_item,seq_impl_item); 
  void clear();
 
  int  size()  const;
};



LEDA research project
1998-10-02