Make mamer compilable
[capablanca.git] / lasker-2.2.3 / bots / mamer / link.hh
1 //--------------------------------------------------------------------------
2 // link.hh - Class header for the link and linklistbase classes
3 //
4 // Matthew E. Moses
5 //
6 // $Revision: 1.2 $
7 // $Date: 1998/04/15 16:56:34 $
8 //
9 // $Author: mlong $
10 // $Locker:  $
11 //
12 // $Log: link.hh,v $
13 // Revision 1.2  1998/04/15 16:56:34  mlong
14 // *** empty log message ***
15 //
16 // Revision 1.2  1998/03/16 19:48:17  chess
17 // *** empty log message ***
18 //
19 // Revision 1.1  1998/03/14 03:14:09  chess
20 // Initial revision
21 //
22 // Revision 1.1  1996/09/30 20:52:48  moses
23 // Initial revision
24 //
25 //
26 //--------------------------------------------------------------------------
27
28 #ifndef _link_
29 #define _link_
30
31 //--------------------------------------------
32 // Base class for a link list element
33 //
34
35 class Link
36 {
37 public:
38     Link *next;
39     
40     Link(void);
41     Link(Link *p);
42     ~Link(void);
43 };
44
45 //-----------------------------------------------
46 // Base class for a Link List
47 //
48
49 class LinkListBase {
50 public:
51   
52   friend class LinkListIterBase;
53   
54   LinkListBase(void);
55   ~LinkListBase(void);
56   
57   void Insert(Link *p);
58   void Insert(Link *p, Link *q);
59   void Append(Link *p);
60   void Delete(void);
61   void Delete(Link *p);
62   
63   Link *Head(void);
64   
65 private:
66   Link *head;
67 };
68
69 //-----------------------------------
70 // Base class for a link list iterator
71 //
72
73 class LinkListIterBase
74 {
75 private:
76     Link         *currentItem;
77     LinkListBase *currentList;
78     
79 public:
80     LinkListIterBase(LinkListBase& list);
81     void Reset(void);
82     Link *Next(void);
83 };
84
85 #endif
86