SanQA
SanQA

Reputation: 233

Deleting a nth node in a doubly linked list

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
struct node
{
  int data;
  struct node *prev;
  struct node *next;
};
struct node* HEAD;
void Deleteatn(int c)
{
  struct node *store,*store1,*temp=HEAD;
  if(c==1)
  {
    store=temp->next;
    store->prev=NULL;
    HEAD=store;
    free(temp);
  }

  else
  {
   for(int i=1;i<c-1;i++)
      temp=temp->next;

   store=temp->next;
   store1=store->next;
   temp->next=store->next;
   //store1->prev=temp;//DOUBT
   free(store);
  }
}
void print()
{
  struct node *temp=HEAD;
  while(temp!=NULL)
  {
    printf("%d ",temp->data);
    temp=temp->next;
  }
  printf("\n");
}
void Insertatend(int b)
{
  struct node *n;
  n=(struct node *)malloc(sizeof(struct node));
  n->data=b;
  n->prev=NULL;
  n->next=NULL;
  if(HEAD==NULL)
    HEAD=n;
  else
  {
    struct node *store,*temp=HEAD;
    while(temp!=NULL)
       {
        store=temp;
        temp=temp->next;
       }
       store->next=n;
       n->prev=store;
  }
}
int main()
{
    int a,b,c;
    printf("How many Numbers need to be inserted?\n");
    scanf("%d",&a);
    for(int i=0;i<a;i++)
     {
      printf("Enter a number\n");
      scanf("%d",&b);
      Insertatend(b);
     }
     printf("The List is\n");
     print();
     printf("Enter which node need to be deleted?\n");
     scanf("%d",&c);
     Deleteatn(c);
     printf("The List After Deletion is\n");
     print();
     return 0;
}

Here I have written a program to delete a nth node in a doubly linked list ,I have a doubt that without making a Backward link,how does the output come correctly.So in doubly linked list is it not mandatory to make both forward and backward link?

I have mentioned the code line as doubt,without that code,how is it working???

Upvotes: 1

Views: 1042

Answers (1)

Noman Khan
Noman Khan

Reputation: 960

You can find the issue when you traverse back. Since you are traversing in forward direction its working fine like a singly linked list.

Upvotes: 2

Related Questions