Data Structures in Hindi : Linked List Insertion

Linked List Insertion

  • Introduction to linked list insertion in Hindi
  • Insertion at beginning of linked list in Hindi
  • Insertion after specified position in Hindi

Introduction to Linked List Insertion 

किसी linked list में नया element add करना insertion कहलाता है। एक linked list में दो प्रकार का insertion perform किया जाता है।
  1. Insertion at beginning of linked list - इस प्रकार के insertion में नया element linked list की शुरआत में add किया जाता है। 
  2. Insertion after specified position in linked list - इस प्रकार के insertion में नया element linked list में किसी specific position के बाद add किया जाता है। 
क्योंकि linked list data के अनुसार grow और shrink हो जाती है इसलिए array के comparison में linked list में नए elements insert करना आसान होता है। 

Insertion at Beginning of Linked List

एक linked list की शुरआत में नया element add करने के लिए सबसे पहले आप Node structure type का नया variable (node) create करते है और malloc() function द्वारा उसे memory allocate करते है।  

struct Node *t;

t = (struct Node*) malloc(sizeof(struct Node));

इसके बाद आप नयी node में data store करेंगे। इसके लिए आप इस प्रकार statement लिखेंगे।

t->Data = data-here;

क्योंकि आप नए element को linked list की शुरआत में add करना चाहते है इसलिए आप linked list के first element के address को नए element के Next pointer filed में store करेंगे।

t->Next = start;

ऊपर दिए statement में नए element t के next field में start को store किया गया है। ऐसा करने से start linked list का second element बन जायेगा और t linked list का पहला element बन जायेगा।

Linked list की शुरआत में element add करना निचे उदाहरण द्वारा बताया जा रहा है।

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>

struct Node
{
    int Data;
    struct Node *Next;
};

void main()
{
    struct Node *start, *q;

    start = (struct Node*) malloc(sizeof(struct Node));

    start->Data = 201;
    start->Next = NULL;

    void insertAtBeginning(int num)
    {
        struct Node *t;

        t = (struct Node*) malloc(sizeof(struct Node));
   
        t->Data = num;
   
        t->Next = start;     

        start = t;
   }

   insertAtBeginning(202);

   for(q=start;q!=NULL;q=q->Next)
   {
       printf("%d\n",q->Data);
   }
 
}

ऊपर दिया गया उदाहरण निचे दिया गया output generate करता है।

202
201


Insertion After Specified Position in Linked List

Linked list के अंदर specific position के बाद नयी node insert करने के लिए सबसे पहले linked list को traverse किया जाता है और वह specific position प्राप्त की जाती है। इसके लिए loop आप इस प्रकार define करते है।

q = start;

for(i=1;i<pos;i++)
{
     q = q->Next;
}

जैसा की आप ऊपर दिए गए syntax में देख सकते है for loop को एक specific position number तक चलाया जायेगा। For loop के अंदर जो statement define किया गया है वह उस position को प्राप्त करने के लिए define किया गया है जिस पर नयी node insert की जायेगी।

इस statement में q linked list structure का ही एक variable है। For loop की शुरुआत में q को starting position assign की गयी है। Condition के अनुसार जब loop terminate होगा तो वह उस position पर होगा जँहा आप नयी node insert करना चाहते है।

Traverse करके desired position obtain करने के बाद आप नयी node create करते है और उसमें data store करते है।

struct Node *n;

n = (struct Node*) malloc(sizeof(struct Node));
n->Data = num;

नयी node को data assign करने के बाद आप नयी node के next field से next node को point करते है। क्योंकि आप structure variable (q) से उस position पर है जँहा आप नयी node insert करना चाहते है और वह next node को point कर रहा है। इसलिए उसका next ही next node होगी और उसे आप इस प्रकार define करेंगे।

n->Next = q->Next;

इसके बाद आप insert की गयी नयी node से पहले वाली node के next pointer filed में insert की गयी नयी node का address define करेंगे। इसके लिए आप इस प्रकार statement define करेंगे।

q->Next->t;

क्योंकि की q की position नयी node (t) से पहले है इसलिए q के next filed में नयी node को assign किया जायेगा।
linked list में किसी specific position के बाद नया element add करना निचे उदाहरण द्वारा समझाया जा रहा है।

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

struct Node
{
    int Data;
    struct Node *Next;
};

void main()
{
    struct Node *start, *second, *third, *fourth, *n, *q, *t;
    int i;

    start = (struct Node*) malloc(sizeof(struct Node));
    second = (struct Node*) malloc(sizeof(struct Node));
    third = (struct Node*) malloc(sizeof(struct Node));
    fourth = (struct Node*) malloc(sizeof(struct Node)); 

    start->Data = 5;
    start->Next = second;

    second->Data = 6;
    second->Next = third;

    third->Data = 7;
    third->Next = fourth;

    fourth->Data = 8;
    fourth->Next = NULL;

    printf("Linked list items before insertion are: \n");

    for(t=start;t!=NULL;t=t->Next)
    {
        printf("%d\n",t->Data);
    }


     void InsertAfter(int position, int num)
     {
         q = start;

          for(i=1;i<position;i++)
          {
                  q = q->Next;
          }

          n = (struct Node*) malloc(sizeof(struct Node));
          n->Data = num;
          n->Next = q->Next;
          q->Next = n;
     }

   InsertAfter(3,1);

   printf("Linked list items after insertion are: \n");

   for(t=start;t!=NULL;t=t->Next)
   {
       printf("%d\n",t->Data);
   }
   
}

ऊपर दिया गया उदाहरण निचे दिया गया output generate करता है।

Linked list items before insertion are :
5
6
7
8
Linked list items after insertion are :
5
6
7
1
8

      DMCA.com Protection Status

 Leave a comment