Algorithm of Inserting in Data Structure using C Language

Algorithm of Inserting in Data Structure – किसी Array में यदि जगह उपलब्ध हो तो नई इकाई को Array के अन्त में जोडना काफी आसान होता है। लेकिन जब हमें Array के किसी विशेष Index Number पर मान को Insert करना होता है तो इसके लिये Array के जिस Element के बाद नई इकाई जोडनी है, उससे बाद के सारे Elements को एक-एक स्थान आगे प्रतिस्थापित किया जाता है। फिर नए मान को Array में जोडा जाता है। यदि हम Array में मान Insert करने से पहले जिस स्थान पर मान Insert करना है, उससे आगे के सभी मानों को प्रतिस्थापित नहीं करते हैं तो हमारा नया मान पुराने मान पर Over Write हो जाता है।

इसी तरह से किसी Array के अन्तिम Element को Delete करना काफी आसान होता है लेकिन जब किसी Array के किसी अन्‍य Element को Delete किया जाता है, तो Array के उस Element से आगे के सभी Elements को एक स्थान पीछे प्रतिस्थापित करना पडता है। यदि ऐसा ना किया जाए तो जिस स्थान के मान को Delete किया गया है उस स्थान पर Garbage मान Store हो जाता है।

मानलो कि Name एक 10 Elements का Linear Array है जिसमें 6 नाम Stored हैं। हम चाहते हैं कि चौथे नाम के बाद एक नया नाम Add करें। इस स्थिति में हमें Array के चौथे Data item के बाद एक जगह बनानी होगी। जगह बनाने के लिए Array के पांचवे व छठे Data Item को Move करके छठे व सातवें स्थान पर Mode करना होगा। उसके बाद नए Data Item को चौथे स्थान पर Insert करना होगा। इस पूरी प्रक्रिया का Algorithm हम निम्नानुसार लिख सकते हैं-

माना एक Array LArray[N] है जिसमें N Items हैं। इस Array के Index Number K पर एक Element ITEM को Insert करना है जबकि हम ये मान कर चलते हैं कि इस Array में अभी इतना स्थान है कि हम इसमें नया Item Insert कर सकें।

चूंकि हमें Index Number K पर नया ITEM Insert करना है इसलिए हमें Index Number K को खाली करना होगा ताकि नया Data इसमें Store हो सके।

चूंकि नया Data Store करने के लिए हम Index Number K पर जगह बना रहे हैं इसलिए हमें Index Number K से Array के अन्तिम Data Items तक के सभी Data Items को एक स्थान Right में Move करना होगा। इस प्रक्रिया को हम निम्न चित्र द्वारा समय  सकते हैं-

10 25 32 45 95 75

माना K का मान 4 है तो हमें Index Number 4-1 = 3 को खाली करना होगा। ऐसा करने पर Index Number 4 के बाद के सभी Data Items को एक स्थान Right में Move करना होगा। ऐसा करने पर ये Array निम्नानुसार दिखाई देगा-

10 25 32 45 45 95 75

अब हम Index number 4 पर नया ITEM Insert कर सकते हैं। Insert करने का Algorithm निम्नानुसार हो सकता है-

Algorithm of Inserting

//===============================================================

  • START
  • DECLARE LArray[N], I, K, ITEM
  • REPEATE FOR I = N-1 TO I >= K STEP I = I – 1
  • SET LArray[I] = LArray[I-1]                   [Shift Data Items to Right]

                  [End of the Loop]

  • SET LArray[K] = ITEM [Insert Element]
  • END

//===============================================================

इसी तरह माना कि एक Array LArray[N] है जिसमें N Items हैं। इस Array के Index Number K पर स्थित Element को Delete करना है। चूंकि हम Index Number K पर स्थित Item को Delete कर रहे हैं इसलिए हमें Index Number K के बाद के सभी Data Items को एक स्थान पीछे की तरफ Move करना होगा। इस प्रक्रिया को हम निम्न चित्र द्वारा समय  सकते हैं-

10 25 32 100 45 95 75

यदि हम K का मान 5 मानें तो Index Number 5-1 = 4 के Data Item को  Delete करना है। जब हम Index Number 4 के Data Item को Delete करना चाहते हैं तो हमें बस इतना ही करना है कि Index Number 4 के Data Item पर Index Number 5 के Data Item को Place कर दें। यानी Index Number 4 के बाद के सभी Data Items को एक स्थान आगे सरका दें। ऐसा करने पर ये Array निम्नानुार दिखाई देगा-

10 25 32 100 95 75 0

किसी Linear Array से Deletion का Algorithm निम्नानुसार हो सकता है-

//===============================================================

  • START
  • DECLARE LArray[N], I, K
  • SET ITEM = LArray[K]
  • REPEATE FOR I = K TO N-1 STEP I = I + 1
  • SET LArray[I] = LArray[I+1] [Shift Data Item to Left]

                  [End of the Loop]

  • END

//===============================================================

इन दोनों Algorithms का हम निम्नानुसार प्रयोग करके Program बना सकते हैं-


//=================================================================
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#define SIZE 10

main()
{
int Array[SIZE] = {1,10,20,0};
int i, j, item, id;
char choice;

while(1)
{
    printf("\n1.    Insert Data Item");
    printf("\n2.    Delete Data Item");
    printf("\n3.    Display Data Item");
    printf("\n4.    Exit");
    printf("\n\nEnter Your Choice  ");
    scanf("%d", &choice);

    switch(choice)
    {
      case 1:  //Insertion Operation on the Array
      printf("Enter Index Number [0 to 9] ");
      Label:
      fflush(stdin);
      scanf("%d", &id);

      if(id < 0 || id > SIZE-1)
      {
            printf("Index Number Must Be BETWEEN 0 to 9 ");
            goto Label;
      }
      printf("Enter Value  ");
      scanf("%d", &item);

      for(i = SIZE-1; i >= id; i--)
        Array[i] = Array[i-1];
      Array[i+1] = item;
      break;

      case 2:  //Deletion Operation on the Array
      printf("Enter ID  ");
      scanf("%d", &id);
      for(j=id; j<SIZE; j++)
      Array[j] = Array[j+1];
      Array[j-1] = 0;
      break;

      case 3:  //Traversing Operation on the Array
      for(i=0; i<SIZE; i++)
      printf("Value at ID %d is %d \n", i, Array[i]);
      break;

      case 4:
      exit(1);
      }
    }
}
//=================================================================
Analyzing Algorithms - Finding Complexity
Bubble Sort in Data Structure

Data Structure and Algorithmes in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Data Structure and Algorithms in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

Data Structure and Algorithms in Hindi | Page: 433 | Format: PDF

BUY NOW DOWNLOAD READ ONLINE

Special Discount Offer

खरीदिए एक से ज्‍यादा EBooks, और पाईए ₹100 से ₹1200 तक का Extra Cash Discount

Discount Coupon Codes