Niz se definira kao skup sličnih tipova podatkovnih stavki pohranjenih na neprekidnim memorijskim lokacijama. Nizovi su izvedeni tip podataka u programskom jeziku C koji može pohraniti primitivni tip podataka kao što su int, char, double, float itd. Također ima mogućnost pohranjivanja zbirke izvedenih tipova podataka, kao što su pokazivači, struktura, itd. Niz je najjednostavnija podatkovna struktura gdje se svakom podatkovnom elementu može nasumično pristupiti pomoću njegovog indeksnog broja.
Niz C je koristan ako morate pohraniti slične elemente. Na primjer, ako želimo pohraniti ocjene učenika iz 6 predmeta, tada ne moramo definirati različite varijable za ocjene iz različitih predmeta. Umjesto toga, možemo definirati niz koji može pohraniti ocjene u svakom predmetu na susjednim memorijskim lokacijama.
Korištenjem niza možemo lako pristupiti elementima. Za pristup elementima niza potrebno je samo nekoliko redaka koda.
Svojstva niza
Niz sadrži sljedeća svojstva.
- Svaki element niza je istog tipa podataka i ima istu veličinu, tj. int = 4 bajta.
- Elementi niza pohranjeni su na susjednim memorijskim lokacijama gdje je prvi element pohranjen na najmanjoj memorijskoj lokaciji.
- Elementima niza može se pristupiti nasumično jer možemo izračunati adresu svakog elementa niza sa zadanom osnovnom adresom i veličinom elementa podataka.
Prednost C polja
1) Optimizacija koda : Manje koda za pristup podacima.
2) Lakoća prolaska : Korištenjem for petlje možemo lako dohvatiti elemente niza.
3) Jednostavnost sortiranja : Za sortiranje elemenata niza potrebno nam je samo nekoliko redaka koda.
4) Nasumični pristup : Možemo pristupiti bilo kojem elementu nasumično koristeći niz.
Nedostatak C polja
1) Fiksna veličina : Bez obzira na veličinu koju definiramo u trenutku deklaracije niza, ne možemo prekoračiti ograničenje. Dakle, ne povećava veličinu dinamički kao LinkedList, što ćemo naučiti kasnije.
Deklaracija C polja
Niz u c jeziku možemo deklarirati na sljedeći način.
data_type array_name[array_size];
Pogledajmo sada primjer za deklariranje niza.
int marks[5];
Ovdje je int tip podataka , oznake su ime_matra , a 5 je veličina_niza .
Inicijalizacija C polja
Najjednostavniji način inicijalizacije niza je korištenje indeksa svakog elementa. Svaki element niza možemo inicijalizirati pomoću indeksa. Razmotrite sljedeći primjer.
karta vs set
marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75;
Primjer niza C
#include int main(){ int i=0; int marks[5];//declaration of array marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75; //traversal of array for(i=0;i<5;i++){ printf('%d ',marks[i]); } end of for loop return 0; < pre> <p> <strong>Output</strong> </p> <pre> 80 60 70 85 75 </pre> <h2>C Array: Declaration with Initialization</h2> <p>We can initialize the c array at the time of declaration. Let's see the code.</p> <pre> int marks[5]={20,30,40,50,60}; </pre> <p>In such case, there is <strong>no requirement to define the size</strong> . So it may also be written as the following code.</p> <pre> int marks[]={20,30,40,50,60}; </pre> <p>Let's see the C program to declare and initialize the array in C.</p> <pre> #include int main(){ int i=0; int marks[5]={20,30,40,50,60};//declaration and initialization of array //traversal of array for(i=0;i<5;i++){ printf('%d ',marks[i]); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 20 30 40 50 60 </pre> <h2>C Array Example: Sorting an array</h2> <p>In the following program, we are using bubble sort method to sort the array in ascending order.</p> <pre> #include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf('printing sorted element list ... '); for(i="0;" i<10; printf('%d ',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf('Enter the size of the array?'); scanf('%d',&n); printf('Enter the elements of the array?'); for(i = 0; i<n; i++) { scanf('%d',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest && arr[i]!=largest) { sec_largest=arr[i]; } } printf('largest = %d, second largest = %d',largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){></pre></5;i++){>
C niz: Deklaracija s inicijalizacijom
Možemo inicijalizirati niz c u vrijeme deklaracije. Pogledajmo kod.
int marks[5]={20,30,40,50,60};
U takvom slučaju postoji nema potrebe za definiranjem veličine . Tako da se također može napisati kao sljedeći kod.
int marks[]={20,30,40,50,60};
Pogledajmo C program za deklariranje i inicijaliziranje niza u C-u.
#include int main(){ int i=0; int marks[5]={20,30,40,50,60};//declaration and initialization of array //traversal of array for(i=0;i<5;i++){ printf(\'%d \',marks[i]); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 20 30 40 50 60 </pre> <h2>C Array Example: Sorting an array</h2> <p>In the following program, we are using bubble sort method to sort the array in ascending order.</p> <pre> #include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf(\'printing sorted element list ... \'); for(i="0;" i<10; printf(\'%d \',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf('Enter the size of the array?'); scanf('%d',&n); printf('Enter the elements of the array?'); for(i = 0; i<n; i++) { scanf(\'%d\',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest && arr[i]!=largest) { sec_largest=arr[i]; } } printf('largest = %d, second largest = %d',largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){>
Primjer C niza: Sortiranje niza
U sljedećem programu koristimo metodu sortiranja mjehurićima za sortiranje niza uzlaznim redoslijedom.
#include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf(\'printing sorted element list ... \'); for(i="0;" i<10; printf(\'%d \',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf('Enter the size of the array?'); scanf('%d',&n); printf('Enter the elements of the array?'); for(i = 0; i<n; i++) { scanf(\'%d\',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest && arr[i]!=largest) { sec_largest=arr[i]; } } printf('largest = %d, second largest = %d',largest,sec_largest); } </n;></pre> <hr></10;>
10;>5;i++){>5;i++){>