-// list.hh
-
#ifndef __LIST_HH
#define __LIST_HH
template<class T> class Cursor;
template<class T> class Link;
-/// all purpose list
+/// all-purpose doubly linked list
template<class T>
class List
{
List(List const&src);
/// construct empty list
- List();
-
- /// construct list from first item.
- List( const T& thing );
-
+ List();
virtual ~List();
Cursor<T> bottom();
protected:
friend class Cursor<T>;
friend class Link<T>;
+
+ void concatenate(List<T> const &s);
+
+
/// make *this empty
void set_empty();
/**
*/
/// add after after_me
- void add( const T& thing, Cursor<T> after_me );
+ void add( const T& thing, Cursor<T> &after_me );
/// put thing before #before_me#
- void insert( const T& thing, Cursor<T> before_me );
+ void insert( const T& thing, Cursor<T> &before_me );
virtual void remove( Cursor<T> me );
/**
Remove link pointed to by me.