**fig3_34.txt** /* 1*/ template /* 2*/ class List /* 3*/ { /* 4*/ private: /* 5*/ static Cursor C; // C is external. /* 6*/ // The list is a linked list with a header node. /* 7*/ unsigned int List_Head; /* 8*/ unsigned int Current_Pos; /* 9*/ List( List & Value ); // Disabled. /*10*/ public: /*11*/ // Constructors. /*12*/ List( ) { List_Head = C.Cnew( ); } /*13*/ // Destructor. /*14*/ ~List( ); /*15*/ // Operators. /*16*/ const List & operator = ( List & Value ); /*17*/ const List & operator ++ ( ); /*18*/ int operator ! ( ) const; /*19*/ const Element_Type & operator ( ) ( ) const; /*20*/ // Member functions. /*21*/ int Is_Empty( ) const; /*22*/ int Find( const Element_Type & X ); /*23*/ int Find_Previous( const Element_Type & X ); /*24*/ int In_List( const Element_Type & X ); /*25*/ void First( ); /*26*/ int Remove( const Element_Type & X ); /*27*/ void Insert( const Element_Type & X ); /*28*/ void Insert_As_First_Element( const Element_Type & X ); /*29*/ };