public:
List(); //constructor
~List(); //deconstructor
- void insertAtFront( const T & );
- void insertAtBack( T *&);
+ T *insertAtFront( const T & );
+ T *insertAtBack( T *&);
+ ListNode<T> *insertAtBack_RLN( T *&);
bool removeFromFront( T & );
bool removeFromBack( T & );
bool del( T *);
ListNode < T > *remove( T * );
bool isEmpty() const;
+ #ifdef DEBUGMODE
void print() const;
+ #endif
+
ListNode < T > *Find( T * );
ListNode < T > *First() { return firstPtr; };
ListNode < T > *Last() { return lastPtr; };
}
template<class T>
-void List<T>::insertAtFront( const T &value )
+T *List<T>::insertAtFront( const T &value )
{
ListNode<T> *newPtr = getNewNode ( value );
firstPtr->prev = newPtr;
firstPtr = newPtr;
}
+ return firstPtr->getData();
+}
+
+template<class T>
+T *List<T>::insertAtBack(T *&value )
+{
+ ListNode<T> *newPtr = getNewNode(*value);
+
+ if (isEmpty())
+ {
+ firstPtr = lastPtr = newPtr;
+ }
+ else
+ {
+ newPtr->prev = lastPtr;
+ lastPtr->next = newPtr;
+ lastPtr = newPtr;
+ }
+ return lastPtr->getData();
}
template<class T>
-void List<T>::insertAtBack(T *&value )
+ListNode<T> *List<T>::insertAtBack_RLN(T *&value )
{
ListNode<T> *newPtr = getNewNode(*value);
lastPtr->next = newPtr;
lastPtr = newPtr;
}
+ return lastPtr;
}
currentPtr = firstPtr;
while (currentPtr)
{
+ cout << currentPtr->getData() << endl << value << endl;
if (currentPtr->getData() == value)
return currentPtr;
currentPtr = currentPtr->Next();
currentPtr = firstPtr;
while (currentPtr)
{
+ /*
cout << "aClient: " << *currentPtr->getData() << flush;
if (currentPtr->getData()->stats)
cout << " Player Name: " << currentPtr->getData()->stats->name
<< " Password: " << currentPtr->getData()->stats->password << flush;
cout << endl;
+ */
+ cout << currentPtr->getData()->getString() << endl;
currentPtr = currentPtr->next;
}
}