By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,232 Members | 1,762 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,232 IT Pros & Developers. It's quick & easy.

pointers and linked list

P: n/a
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!!!:)
Jul 22 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a

"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
Jul 22 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.