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:-
- How to set limit in the floating value in python
- What is boolean data type
- How to print any character without using format specifier
- How to check that given number is power of 2 or not
- How to fix limit in double and floating numbers after dot (.) in c++
- How to print a double or floating point number in scientific notation and fixed notation
- How to take input a string in c
- How to reduce the execution time of program in c++.
Cracking the coding interview:-
Array and string:-
Tree and graph:-
Hackerearth Problems:-
- Very Cool numbers | Hacker earth solution
- Vowel Recognition | Hackerearth practice problem solution
- Birthday party | Hacker earth solution
- Most frequent | hacker earth problem solution
- program to find symetric difference of two sets
- cost of balloons | Hacker earth problem solution
- Chacha o chacha | hacker earth problem solution
- jadu and dna | hacker earth solution
- Bricks game | hacker earth problem
- Anti-Palindrome strings | hacker earth solution
- connected components in the graph | hacker earth data structure
- odd one out || hacker earth problem solution
- Minimum addition | Hackerearth Practice problem
- The magical mountain | Hackerearth Practice problem
- The first overtake | Hackerearth Practice problem
Hackerrank Problems:-
- Playing With Characters | Hackerrank practice problem solution
- Sum and Difference of Two Numbers | hackerrank practice problem solution
- Functions in C | hackerrank practice problem solution
- Pointers in C | hackerrank practice problem solution
- Conditional Statements in C | Hackerrank practice problem solution
- For Loop in C | hackerrank practice problem solution
- Sum of Digits of a Five Digit Number | hackerrank practice problem solution
- 1D Arrays in C | hackerrank practice problem solution
- Array Reversal | hackerrank practice problem solution
- Printing Tokens | hackerrank practice problem solution
- Digit Frequency | hackerrank practice problem solution
- Calculate the Nth term | hackerrank practice problem solution
Data structure:-
- Program to find cycle in the graph
- Implementation of singly link list
- Implementation of queue by using link list
- Algorithm of quick sort
- stack by using link list
- program to find preorder post order and inorder of the binary search tree
- Minimum weight of spanning tree
- Preorder, inorder and post order traversal of the tree
MCQs:-
0 Comments