Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

DOUBLY LINKLIST

#include<iostream>
#include<conio.h>
using namespace std;

struct dNode//doubly link list node


{
dNode* prev;
int data;
dNode* next;
};

class list
{
private:
dNode* dHead;
dNode* dCur;
dNode* dt;

public:
list()
{
dHead=NULL;
}
void dList(int n)//create doubly link list
{
if(dHead==NULL)
{
dHead=new dNode;
dHead->data=n;
dHead->next=NULL;
dHead->prev=NULL;
}
else
{
dCur=dHead;
while(dCur->next!=NULL)
{
dCur=dCur->next;
}

dt=new dNode;
dt->data=n;
dt->next=NULL;
dt->prev=dCur;

dCur->next=dt;
}
}

void dTraverse(string c)//tarverse doubly link list


{
dCur=dHead;
if(c=="f"||c=="F")//for forward traversing
{
dCur=dHead;
cout<<"Data of Doubly Link list:";

while(dCur->next!=NULL)
{
cout<<dCur->data<<"\t";
dCur=dCur->next;
}

cout<<dCur->data<<"\t"<<endl;
}

else if(c=="b"||c=="B")//for backward traversing


{
dCur=dHead;
cout<<"Data of Doubly Link list:";

while(dCur->next!=NULL)
{
dCur=dCur->next;
}
while(dCur->prev!=NULL)
{
cout<<dCur->data<<"\t";
dCur=dCur->prev;
}
cout<<dCur->data<<"\t"<<endl;
}

void dDel(int dk)


{
dCur=dHead;
for(int i=1;i<dk;i++)
{
dCur=dCur->next;
}

dt=dCur->next;
delete dCur;

dCur=dHead;
for(int i=1;i<dk-1;i++)
{
dCur=dCur->next;
}
dt->prev=dCur;
dCur->next=dt;
}

};
main()
{
list l;
l.dList(1);
l.dList(2);
l.dList(3);

l.dTraverse("f");

l.dDel(2);

l.dTraverse("f");
}

You might also like