"Pats" <pr**********@yahoo.com> wrote in message
news:a4**************************@posting.google.c om...
Hello everyone I'm new here...
Just needed help on pointers and linked list how to implement
these...? What are the guidelines... and a sample program using
these.. Thanks!!!:)
For a basic linked list you need to specify a basic node class. This should
have a pointer to some data, and methods for removing/inserting a new node
(at the head or tail only for a single-linked list or at any point for a
double-linked list).
To store the data, either use a template, or my preferred solution is to
specify an abstract class with no members which must be inherited from to
store data in the list. The data would be stored in the node as a pointer
to this abstract class.
here is a basic interface (untested)
class DataItem
{
public:
DataItem(){}
virtual ~DataItem(){}
};
class DoubleListNode
{
protected:
ListNode(DataItem *xiData);
virtual ~ListNode();
DataItem *mData;
DoubleListNode *mNextNode;
DoubleListNode *mPrevNode;
};
class DoubleList
{
public:
DoubleList();
virtual ~DoubleList();
DataItem *Insert(DataItem *xiNewItem);
DataItem *Remove(DataItem *xiNewItem);
// any other interface required
protected:
unsigned long mNumNodes;
DoubleListNode *mHead;
DoubleListNode *mTail;
};
I would also add some form of iterator to the list, but I`ll leave something
for you to do!
To make this List store integers, make a new DataItem like this:
class IntDataItem : public DataItem
{
IntDataItem(int xiInt) {mInt = xiInt;}
virtual ~IntDataItem();
int GetInt() {return mInt;}
private:
int mInt;
};
Hope this helps
Allan