1  #ifndef LIST_H
 2  #define LIST_H
 3
 4  #include <iostream>
 5
 6  class list
 7  {
 8  public:
 9    list();
10    ~list();
11
12    list *remove();
13    void  append( list *lp );
14    void  insert( list *lp );
15    list *get_next() const { return next; }
16    list *get_prev() const { return prev; }
17
18    void print( std::ostream& os) const;
19
20    static int get_nid() { return nid; }
21  private:
22    const int  id;
23          list *next;
24          list *prev;
25
26    static int nid;
27
28    // ADA: private limited
29    list( const list &rhs );
30    list operator=( const list &rhs );
31  };
32
33  std::ostream& operator<<( std::ostream&, const list& );
34
35  #endif /* LIST_H */
36
37