Program to delete duplicates from a link list

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 in c.

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 in c:-

#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:-

 

 

Leave a Reply

Your email address will not be published.