Skip to main content

C++ Doubly Linked List Traversal



#include<iostream>

using namespace std;

struct node
{
int data;
struct node *prev;
struct node *next;
};

class dl
{
struct node *start;
public:
dl()
{
start=NULL;
}

void traverse_forward();
void traverse_reverse();
void insert_item(int item);
void delete_item();

};

void dl::insert_item(int item)
{
struct node *p;
p=(struct node *)malloc(sizeof(struct node));

p->prev=NULL;
p->next=start;
p->data=item;
if(start!=NULL)
start->prev=p;
start=p;



}

void dl::traverse_forward()
{
struct node *temp;
temp=start;
while(temp!=NULL)
{
cout<<temp->data<<endl;
temp=temp->next;
}
}


void dl::traverse_reverse()
{
struct node *temp;
temp=start;
while(temp->next!=NULL)
{
temp=temp->next;
}

while(temp!=NULL)
{
cout<<temp->data<<endl;
temp=temp->prev;
}
}

int main()
{
dl obj;
obj.insert_item(11);
obj.insert_item(12);
obj.insert_item(13);
obj.insert_item(14);
obj.insert_item(15);
obj.insert_item(16);

cout<<"travel forward\n";
obj.traverse_forward();
cout<<"travel reverse\n";
obj.traverse_reverse();
return 0;
}

Comments