Program to Insert and Delete in an Array: किसी 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("nnEnter 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); } } }
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Data Structure and Algorithms in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Data Structure and Algorithms in Hindi | Page: 433 | Format: PDF