You are here:

# C++/data structure and algorithms

Advertisement

Question
Implement the linked list Node class (which store integer values)in c++.

Answer
Dear Ehsan:

Use is code from the following link:
http://www.dreamincode.net/code/snippet82.htm

Use can use it to store integer or whatever structures you want:

#include <iostream>

using namespace std;

class linklist
{
private:

struct node
{
int data;
node *link;
}*p;

public:

linklist();
void append( int num );
void add_as_first( int num );
void addafter( int c, int num );
void del( int num );
void display();
int count();
~linklist();
};

linklist::linklist()
{
p=NULL;
}

void linklist::append(int num)
{
node *q,*t;

if( p == NULL )
{
p = new node;
p->data = num;
p->link = NULL;
}
else
{
q = p;
while( q->link != NULL )
q = q->link;

t = new node;
t->data = num;
t->link = NULL;
q->link = t;
}
}

void linklist::add_as_first(int num)
{
node *q;

q = new node;
q->data = num;
q->link = p;
p = q;
}

void linklist::addafter( int c, int num)
{
node *q,*t;
int i;
for(i=0,q=p;i<c;i++)
{
q = q->link;
if( q == NULL )
{
cout<<"nThere are less than "<<c<<" elements.";
return;
}
}

t = new node;
t->data = num;
t->link = q->link;
q->link = t;
}

void linklist::del( int num )
{
node *q,*r;
q = p;
if( q->data == num )
{
p = q->link;
delete q;
return;
}

r = q;
while( q!=NULL )
{
if( q->data == num )
{
r->link = q->link;
delete q;
return;
}

r = q;
q = q->link;
}
cout<<"nElement "<<num<<" not Found.";
}

void linklist::display()
{
node *q;
cout<<endl;

for( q = p ; q != NULL ; q = q->link )
cout<<endl<<q->data;

}

int linklist::count()
{
node *q;
int c=0;
for( q=p ; q != NULL ; q = q->link )
c++;

return c;
}

linklist::~linklist()
{
node *q;
if( p == NULL )
return;

while( p != NULL )
{
q = p->link;
delete p;
p = q;
}
}

int main()
{
linklist ll;
cout<<"No. of elements = "<<ll.count();
ll.append(12);
ll.append(13);
ll.append(23);
ll.append(43);
ll.append(44);
ll.append(50);

ll.add_as_first(2);
ll.add_as_first(1);

ll.addafter(3,333);
ll.addafter(6,666);

ll.display();
cout<<"nNo. of elements = "<<ll.count();

ll.del(333);
ll.del(12);
ll.del(98);
cout<<"nNo. of elements = "<<ll.count();
return 0;
}

C++

All Answers

Answers by Expert:

Ask Experts

Volunteer

#### Titus B. Ledbetter, Jr.

##### Expertise

C , MFC, Object Oriented, Artificial Intelligence

##### Experience

I have over ten years experience in the field of Computer Science, five years experience developing C/C++. I recently wrote a chess program using Object Oriented, C++, MFC.

Education/Credentials
Master's Degree Computer Science from Johns Hopkins

©2016 About.com. All rights reserved.

Browse Answers: