Header Ads Widget

Doubly link list in c

 In this article we will learn that what is doubly link list and  how to implement a doubly link list.

Doubly link list is a list in which there is three field first for storing the address of the previous node second for data field and third for the address of the next node. 

Pre_pointer:-   It store the address of the previous node

Data field:-  It store the data.

Next_Pointer:- It store the address of the next node.

Implementation of doubly link list:-
#include<stdio.h>

// function for define the structure of node
struct node
{
int data;
struct node *pre,*next;
};
struct node *head=NULL;
// function for creating the node
struct node *creatnode()
{
struct node* t;
t=(struct node*)malloc(sizeof(struct node));
return(t);
}

// function for insert the node
// at starting for the list
void InsertAsFirst()
{
struct node *t;
t=creatnode();
printf("Enter a number");
scanf("%d",&t->data);
t->pre=NULL;
t->next=NULL;
if(head==NULL)
{
head=t;
}
else
{
t->next=head;
head->pre=t;
head=t;
}
}

// function for delete the node
// from the starting
void deletefirst()
{
struct node *t;
if(head==NULL)
printf("List is Empty");
else
{
t=head;
head=head->next;
head->pre=NULL;
free(t);
}
}

// function for view the list
void viewlist()
{
struct node *t;
if(head==NULL)
printf("List is Empty");
else
{
t=head;
while(t->next!=NULL)
{
printf("%d ",t->data);
t=t->next;
}
}
}

// driver function
int main()
{
int ch;
head=creatnode();
while(1)
{
printf("Press\n");
printf("1. Insertion\n");
printf("2. delete\n");
printf("3. View List\n");
printf("4. Exit\n");
printf("Enter Your Choice\n");
scanf("%d",&ch);
switch(ch)
{
case 1:
InsertAsFirst();
break;
case 2:
deletefirst();
break;
case 3:
viewlist();
break;
case 4:
exit(0);
default :
printf("Invailid key");
}
}
return 0;
}

Output:-
Press
1. Insertion
2. delete
3. View List
4. Exit
Enter Your Choice 1
Enter a number 12

Press
1. Insertion
2. delete
3. View List
4. Exit
Enter Your Choice 1
Enter a number 34

Press
1. Insertion
2. delete
3. View List
4. Exit
Enter Your Choice
3
34 12

Press
1. Insertion
2. delete
3. View List
4. Exit
Enter Your Choice
2

Press
1. Insertion
2. delete
3. View List
4. Exit
Enter Your Choice 4

Recommended Post:

Key points:-

Cracking the coding interview:-

 Array and string:-

Tree and graph:-

Hackerearth Problems:-

Hackerrank Problems:-

Data structure:-

 MCQs:-