IBPS RRB PO interview call letterCheck

X




IBPS competition Exam is a website where you will get daily updates about all the government competitions exams like bank, railways, UPSC, SSC, 10th, 12th etc. All latest news will be updated here daily about government competitions exams.syllabus,exam pattern,online form filing,old question paper,online e-books banks jobs,and other jobs,exam admit card, reference books and study material in Hindi and English language or audio video format

One Dimensional And Two Dimensional Array in Data Structure

 

Array

ऐरे समान डाटा तत्वों के परिमित क्रमो का संग्रह है जोकि क्रमिक मैमोरी स्थानों में संग्रहित होता है l

Array दो प्रकार के होते है :

      1.      एकल या एक आयामी ऐरे

      2.      बहु आयामी ऐरे

एकल या एक आयामी ऐरे (One Dimensional Array)

आइटमो की एक सूची के लिए केवल एक सबस्क्रिप्ट का उपयोग करके एक variable नाम दिया जाता है और इस तरह के variable को one dimensional array कहा जाता है l

One Dimensional Array

एक आयामी ऐरे की घोषणा(Declaration) – किसी भी variable की तरह, ऐरे को भी उपयोग से पहले declare किया जाना चाहिए ताकि कम्पाईलर उनके लिए मैमोरी में स्पेस आवंटित करसके l ऐरे को निम्न प्रकार से declare किया जाता है l

type variable-name[size];

example

float height[50];

char name[10];

type ऐरे में संग्रहित होने वाले तत्वों के प्रकार को बताता है जैसे की int, float, और char और variable name ऐरे के नाम को बताता है जैसे की height, group और name है size ऐरे में स्टोर किये जा सकने वाले तत्वों की अधिकतम संख्या को इंगित करता है l C प्रोग्रामिंग language, करेक्टर स्ट्रिंग को करेक्टर के ऐरे के रूप में ही प्रबंध करता है l

पांच तत्वों के लिए एक ऐरे की घोषणा:  int number[5];

एकल या एक आयामी ऐरे का प्रारम्भ : एक ऐरे को declaration के बाद उसके तत्व प्रारम्भ किये जाते है सी प्रोग्रामिंग में एक ऐरे निम्न चरणों में प्रारम्भ किया जा सकता है :

Compile Time

Run Time

Compile time execution – जब एक ऐरे के declaration के साथ उसे प्रारम्भ किया जाता है तो ऐरे निम्न प्रकार से प्रारम्भ होगा: type array-name[size] = { list of values };

लिस्ट में मानो को कोमा से अलग किया जाता है उदाहरण के लिए

int number[3] = {0,5,4};

ऊपर दिए गये स्टेटमेंट में 3 आकर का एक number नाम का ऐरे है और हर तत्व को वैल्यू आवंटित होगी l लिस्ट में वैल्यू की संख्या ऐरे साइज़ की तुलना में कम है, तो यह केवल कुछ ऐरे तत्व को वैल्यू आवंटित करेगा l शेष तत्वों को स्वचालित रूप से शून्य आवंटित हो जायेगा l याद रखे, घोषित आकर की तुलना में अधिक वैल्यू है, तो एक त्रुटी शो होगा l

Run time execution – एक ऐरे को स्पष्ट रूप से चलाने के लिए रन टाइम प्रारम्भ किया जा सकता है उदाहरण के लिए निम्नलिखित सी प्रोग्राम के खंड पर विचार करे l

for(i=0;i<10;i++)

{

scanf(“%d”, &x[i]);

}

उदाहरण के लिए ऊपर किबोर्ड से वैल्यू देते है रन टाइम में लूपिंग स्टेटमेंट जरुरी है असाइन्मेंट ऑपरेटर की सहायता से एक एक वैल्यू ऐरे में स्टोर करते है

One Dimensional Array Program :

#include<stdio.h>

void main()

{ int array[5],i;

printf(“Enter 5 number तो store them in array \n”);

for(i=0;i<5;i++)

{

scanf(“%d”,&array[i]);

}

printf(“Element in the array are - \n \n”);

for(i=0;i<5;i++)

{

printf(“Element stored at a[%d]=%d \n”,i,array[i]);

}

getch();

}

input = Enter 5 elements in the array – 23 45 32 25 45

output = Elements in the array are –

Element stored at a[0]-23

Element stored at a[1]-45

Element stored at a[2]-32

Element stored at a[3]-25

Element stored at a[4]-45

बहु आयामी ऐरे (Multidimensional array)

ऐरे का ऐरे एक multidimensional array कहलाता है l सामान्य रूप से बहुआयामी ऐरे की घोषणा निम्न प्रकार से होती है ltype variable-name [size1] [size2]---[sizeN];

बहुआयामी ऐरे का सरलतम रूप दो आयामी ऐरे है उदाहरण :

int x [3] [4];

उपरोक्त x एक दो आयामी (2D) ऐरे है l ऐरे में 12 तत्व है l यहाँ x 3 पंक्ति के साथ तालिका के रूप में ऐरे है l और प्रत्येक पंक्ति में 4 स्तम्भ है l

 

Column 1

Column 2

Column 3

Column 4

Row 1

x[0][0]

x[0][1]

x[0][2]

x[0][3]

Row2

x[1][0]

x[1][1]

x[1][2]

x[1][3]

Row 3

x[2][0]

x[2][1]

x[2][2]

x[2][3]

Two Dimensional Array का प्रारम्भ : एक आयामी ऐरे की तरह, 2D ऐरे को भी दोनों प्रकार से कम्पाइल टाइम व रन टाइम से प्रारम्भ किया जा सकता है

Compile time execution- जब एक ऐरे का डिक्लेरेशन के साथ प्रारम्भ किया जाता है तो दो आयामी ऐरे निम्न प्रकार से प्रारम्भ होगा :

int table-[2][3]={

{0,2,5}

{1,3,0}

};

Run time execution- एक ऐरे को स्पस्ट रूप से चलाने के लिए रन टाइम आरम्भ किया जा सकता है दो आयामी ऐरे लूप स्ट्रक्चर की मदद से आरम्भ करते है l दो लूप स्ट्रक्चर उपयोग में ली जाती है l जिसमे आउटपुट लूप पंक्ति के लिए एवं इनर लूप कॉलम के उपयोग में आती है l उदाहरण के लिए निम्नलिखित सी प्रोग्राम के खंड पर विचार करे l

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

{

scanf(“%d”,&ar1[i][j]);

}

}

2D ऐरे प्रोग्राम

#include<stdio.h>

#include<conio.h>

void main()

{

int array[3][3],i,j,count=0;

/* Run time initialization */

for(i=1;i<=3;i++)

{

for(j=1;j<=3;j++)

{

count++;

array[i][j]=count;

printf(“\n”);

}

getch();

}

Output –

1   2   3

4   5   6

7   8   9 

One Dimensional Array Address Calculation (एकल आयामी ऐरे में पता गणना)

एक ऐरे “A [I]” के एक तत्व की गणना निम्न सूत्र के उपयोग से करते है –

Address of A [I] = B + W * (I - LB)

Where,

B = आधार पता

W = ऐरे में उपस्थित एक तत्व की स्टोरेज साइज़

I = जिस तत्व का पता ज्ञात करना है उसका सबस्क्रिप्ट

LB = निचली सीमा / उपलब्ध नही होने पर शून्य माने

 

Example : एक ऐरे [1300... ..1900] का आधार पता 1020 और प्रत्येक तत्व का आकार मैमोरी में 2 बाइट्स के रूप में है l B[1700], का पता गणना कीजिये

Solution: दिए गये मान निम्न है B =1020, LB =1300, W =2, I =1700

A[I] का पता = B + W * (I - LB)

= 1020 + 2 * (1700 – 1300)

= 1020 + 2 * 400

= 1020 + 800

= 1820 Ans.


Two Dimensional Array Address Calculation (दो आयामी ऐरे में पता गणना)

मैमोरी में एक 2 D ऐरे तत्वों को संग्रह करते समय इन्हें क्रमिक मैमोरी लोकेशन आवंटित किये जाते है l इसलिए उसके भंडारण को सक्षम करने के लिए 2D ऐरे को लीनियराइज करते है l लीनियराइज करने के दो तरीके होते है l रो मेजर और कॉलम मेजर l

1 पंक्ति प्रमुख प्रणाली (Row Major System)ऐरे के किसी तत्व “A [I][J]” के पता की गणना निचे दिए गये दो प्रकारों से की जा सकती है

2 कॉलम प्रमुख प्रणाली (Column Major System)

Row Major System – पंक्ति प्रमुख प्रणाली में एक लोकेशन का पता निम्न सूत्र का उपयोग करके किया जाता है:

A [I][J] तत्व का पता = B + W * [N * (I – Lr)+(J – Lc)]

Column major System – कॉलम प्रमुख प्रणाली में एक लोकेशन का पता निम्न सूत्र का उपयोग करके किया जाता है l

A [I][J] तत्व का पता = B + W * [(I – Lr)+M * (J – Lc)]

ऐरे पर बुनियादी ऑपरेशन (Basic operations of Array) – निम्नलिखित basic operations ऐरे पर किये जाते है

Traversing – एक डाटा स्ट्रक्चर मे मोजूद सभी डाटा तत्वों के प्रसंस्करण (प्रोसेसिंग) को terversing कहते है l

Insertion – इंसर्शन का अर्थ एक डाटा स्ट्रक्चर में एक नये डाटा तत्व को जोड़ना l

Deletion – deletion का अर्थ एक डाटा स्ट्रक्चर में एक डाटा तत्व को हटाना अगर वह मोजूद है l

Search – एक डाटा स्ट्रक्चर में निर्दिष्ट डाटा तत्व को खोजने को सर्च कहते है l

Update – दिए गये सूचकांक में एक तत्व अपडेट करता है l

Traversing – एक डाटा स्ट्रक्चर में मोजूद सभी डाटा तत्वों के प्रसंस्करण को traversing कहते है l निम्नलिखित एल्गोरिथम से लीनियर ऐरे को ट्रवर्स कर सकते है l  

     1.      Repeat for I = LB to UB

     2.      Apply PROCESS to A[I]

     3.      Exit

Insertion – insertion का अर्थ एक डाटा स्ट्रक्चर में एक नये डाटा तत्व को जोड़ना l निम्नलिखित एल्गोरिथम से लीनियर ऐरे में इन्सर्ट कर सकते है l

Algorithm – Let LA be a linear Array with N element and K is a posiitive integer such that K<=N. following is the algorithm where ITEM is inserted into the Kth position of LA –

     1.      Start

     2.      Set J= N

     3.      Set N=N+1

     4.      Repeat steps 5 and 6 while J >= K

     5.      Set LA[J+1] = LA[J]

     6.      Set J=j-1

     7.      Set LA[K] =ITEM

     8.      Stop    

C program for insertion:

#include<stdio.h>

main() {

int LA[] = {1,3,5,7,8};

int item =10, k=3, n=5;

int i =0, j =n;

printf(“The original array element are :\n”);

for(i=0;i<n;i++){

printf(“LA[%d] =%d \n”, i, LA[i]);

}

n=n+1;

while(j>=k) {

LA[j+1]=LA[j];

j=j-1;

}

LA[k] = item;

printf(“The array elements after insertion :\n”);

for(i=0;i<n;i++) {

printf(“LA[%d] =%d \n”, i, LA[i]);

}

}

जब उपरोक्त कोड compile और run होगा तो output निम्नानुसार होगा :

The original array element are :

LA[0] = 1

LA[1] = 3

LA[2] = 5

LA[3] = 7

LA[4] = 8

The array element after insertion :

LA[0] = 1

LA[1] = 3

LA[2] = 5

LA[3] = 10

LA[4] = 7

LA[5] = 8


Deletion – डिलीशन का अर्थ एक डाटा तत्व को हटाना होता है यदि वह मोजूद है l निम्नलिखित एल्गोरिथम से लीनियर ऐरे के तत्वों को डिलीट कर सकते है l

Algorithm – consider LA is a linear array with N elements and K is a positive integer such that K<=N. following is the algorithm to delete an element available at the Kth position of LA.

   1.      start

   2.      set J=K

   3.      repeat steps 4 and 5 while J < N

   4.      set LA[J-1]=LA[J]

   5.      set J = J + 1

   6.      set N = N-1

   7.      stop

Search (सर्च) – एक डाटा स्ट्रक्चर में निर्दिष्ट डेटा तत्व को खोजने को सर्च कहते है लीनियर एरे में सर्च दो प्रकार की होती है

           1.      linear search

           2.      Binary search

Linear search -  लीनियर सर्च बुनियादी और सरल सर्च एल्गोरिथम है l लीनियर सर्च में तत्व और मान को तब तक सर्च करते है जब तक मिल नही जाता है l इसमें दिए गये तत्वों को ऐरे में उपलब्ध सभी तत्वों से तुलना करते है एवं मिलान होने पर ऐरे इंडेक्स का मान प्राप्त होता है अन्यथा -1 l लीनियर सर्च सॉर्टेड और अनसॉर्टेड मानो पर लागु करते है l जब तत्वों की संख्या कम हो l लीनियर सर्च की एल्गोरिथम निम्न प्रकार है

Consider LA is a linear array with N elements and K is a positive integer such that K<=N. following is the algorithm to find an element with a value of ITEM using sequential search

         1.      start

         2.      set J=0

         3.      repeat step 4 and 5 while J<N

        4.      IF LA[J] is equal ITEM THEN GOTO STEP 6

        5.      set J=J+1

        6.      PRINT J, ITEM

        7.      stop

Binary Search -  बाइनरी सर्च सॉर्टेड ऐरे या लिस्ट पर लागु किया जाता है l सर्वप्रथम हम दिये गये तत्व की ऐरे के बिच के तत्व से तुलना करते यदि तत्व के मान का मिलान हो जाता है तो ऐरे का इंडेक्स मान रिटर्न करता है l यदि तत्व का मान कम है तो निचले आधे हिस्से में होगा अन्यथा ऊपरी आधे हिस्से में होगा l बाइनरी सर्च का उपयोग तत्वों की संख्या अधिक होने पर किया जाता है l निम्नलिखित बाइनरी सर्च का एल्गोरिथम है l

Compare x with the middle element.

If x matches with middle element, we return the mid index.

Else if x is greater then the mid element, then x can only lie in right half subarray after the mid element. so we recur for right half.

Else (x is smaller) recur for the left half.

UPDATE – दिए गये सूचकांक में एक तत्व अपडेट करता है l निम्नलिखित एल्गोरिथम एक तत्व को ऐरे में अपडेट करता है l

Consider LA is a linear array with N element and K is a positive integer such that K<=N. following is the algorithm to update available at the kth position of LA.

         1.      start

         2.      set LA[k-1]=ITEM

         3.      stop

C मै करैक्टर स्ट्रिंग – स्ट्रिंग वास्तव में एक आयामी करैक्टर ऐरे है l जिसमे अंत में Null करैक्टर ‘\0’ होता है l निम्नलिखित डिक्लेरेशन और इनिशलाईजेशन “Hello” शब्द से बनी स्ट्रिंग क्रियेट करता है l ऐरे के अंत में null करैक्टर जोड़ने के लिए करैक्टर स्ट्रिंग की लम्बाई “Hello” शब्द में कुल अक्षरों की संख्या से एक अधिक है l

char greeting[6]={‘H’, ‘e’, ‘i’, ‘o’, ‘\0’};

char greeting[]=”Hello”;

वास्तव में आप स्ट्रिंग के अंत में null करैक्टर को इन्सर्ट नही करते, सी कम्पाइलर स्वचालित रूप से स्ट्रिंग के अंत में null करैक्टर को इन्सर्ट कर देता है जब यह ऐरे को इनिशलाईज करता है l

Static and dynamic memory allocation – डायनामिक मैमोरी आलोकेशन रन टाइम पर किया जाता है l जबकि स्टेटिक मैमोरी अलोकेशन रन टाइम से पहले किया जाता है, लेकिन वेरिएबल के मानो को रन टाइम पर बदला जा सकता है

स्टैटिक मैमोरी अलोकेशन रनिंग टाइम में बचत करता है, लेकिन सभी मामलो में यह संभव नही हो सकता है l डायनेमिक मैमोरी आलोकेशन इसकी मैमोरी को हीप में स्टोर करता है और स्टैटिक मैमोरी अलोकेशन इसके डाटा को मैमोरी के डेटा सेगमेंट में स्टोर करता है l C language में मैमोरी अलोकेशन और प्रबंधन के लिए कई फंक्शन होते है l यह फंक्शन <stdlib.h> हेडर फाइल में होते है l 






Share:

0 comments:

Post a Comment

Copyright © IBPS Exam Preparation Guide 2016-2017.......... Best Guidelines For Ibps Exam