Uvod u nizove u strukturi podataka
Niz je vrsta strukture podataka koja se koristi za pohranjivanje homogenih podataka u susjednim memorijskim mjestima. Time se realizira ideja pohranjivanja različitih predmeta tako da im se odjednom može pristupiti ili im se pristupiti.
Ovdje se indeks odnosi na mjesto elementa u nizu. Zamislimo da li je P (L) naziv matrice gdje je 'P' naziv varijable, a 'L' duljina polja, tj. Broj elemenata prisutnih u nizu. Tada P (i) predstavlja element na tom 'i + 1' položaju u nizu.
Na primjer:
P (6) = 72 znači element na 6 + 1. mjestu matrice.
Potreba za nizom: pomaže u predstavljanju velikog broja elemenata koristeći jednu varijablu. Također omogućuje brži pristup elementu za pohranjivanje u memorijsku lokaciju koristeći indeks matrice koji predstavlja lokaciju elementa u nizu.
Kako nizovi rade u strukturi podataka?
Array pohranjuje varijable na neprekidne lokacije i daje im određeni indeks. Kad netko želi dohvatiti podatke, osoba koristi ovaj indeks. U gore navedenom nizu 'P', recite osnovnu adresu za niz = 100, tada su elementi pohranjeni kao dolje:
Memorija dodijeljena nizu može se izračunati kao:
- Jednodimenzionalni niz: Ukupna memorija dodijeljena nizu = Broj elemenata * veličina jednog elementa. Na primjer: U gornjem slučaju, memorija = 7 * (veličina int)
- Redovni redoslijed reda: Ukupna memorija dodijeljena 2D nizu = Broj elemenata * veličina jednog elementa
= Broj redaka * Broj stupaca * Veličina jednog elementa - Glavni redoslijed stupca: Ukupna memorija dodijeljena 2D matrizi = Broj elemenata * veličina jednog elementa
= Broj redaka * Broj stupaca * Veličina jednog elementa
Kako definirati nizove?
Stoga se Array može definirati kao izvedena struktura podataka za pohranjivanje homogenih podataka primitivnog tipa podataka u susednim memorijskim mjestima. Ispod su operacije koje se mogu izvoditi na nizovima:
1. Umetanje: odnosi se na umetanje elementa u niz u određenom indeksu. To se može izvesti s O (n) složenošću.
2. Brisanje: odnosi se na brisanje stavke u određenom indeksu. Ova operacija zahtijeva pomicanje elemenata nakon brisanja i time složenost O (n).
3. Pretraživanje: odnosi se na pristup stavci u određenom indeksu niza.
4. Pomicanje: odnosi se na ispis svih elemenata niza jedan za drugim.
Svojstva nizova u strukturi podataka
Ispod su svojstva nizova u strukturi podataka:
- To je izvedeni tip podataka, sastavljen od zbirke različitih primitivnih vrsta podataka kao što su int, char, float itd.
- Elementi matrice pohranjuju se u neprekidne blokove u primarnoj memoriji.
- Naziv matrice pohranjuje baznu adresu matrice. On djeluje kao pokazivač na memorijski blok u kojem je pohranjen prvi element.
- Indeksi niza počinju od 0 do N-1 u slučaju matrice s jednom dimenzijom, gdje n predstavlja broj elemenata u polju.
- Elementi matrice mogu se sastojati samo od konstanti i doslovnih vrijednosti.
Kako stvoriti nizove?
Niz možemo stvoriti koristeći sintaksu u nastavku:
1. Dimenzionalni niz: var = (c1, c2, c3, …… .cn)
Ovdje se var odnosi na varijablu za niz koji pohranjuje bazno mjesto matrice. A c1, c2 … su elementi niza.
Primjer: int a = (4, 6, 7, 8, 9)
Duljina niza = n
2. višedimenzionalni niz: var = ((r 01, … r 0n ), (r 10, … ..r 1n )… .. (r m0 … .r mn ))
Ovdje se var odnosi na naziv niza m redaka i n stupaca.
Kako pristupiti elementu polja?
Indeksi polja započinju od 0 do -1.0 što ukazuje na prvi element matrice, a -1 označava zadnji element matrice. Isto tako, -2 ukazuje na posljednji, ali jedan element niza. Recimo, postoji niz 'A' s 10 elemenata. Zatim ovdje varijabla pohranjuje referencu prve varijable matrike i to se zove 'Base Address' matrice. Nakon toga, ako netko želi pristupiti elementu polja, adresa tog elementa izračunava se pomoću donje formule.
Adresa elementa ith = Osnovna adresa + i * veličina svakog elementa
Ovdje veličina svakog elementa odnosi se na memoriju koju zauzimaju različite primitivne vrste podataka u kojima se nalazi niz. Na primjer, int zauzima 2 bajta prostora, a float zauzima 4 bajta prostora u C.
Pristup višedimenzionalnom nizu
Recimo da je A (r l, …… .., r u ) (c u, ……, c l ) višedimenzionalni niz, a rl, r u, c u, c l su donja i gornja granica redaka i stupaca. Kada je broj redaka u A, recimo NR = r u - r l +1 i Broj stupaca u A, recimo NC = c l - c u +1.
Postoje dvije metode za pronalaženje adrese elementa u nizu:
- Glavni red: Gdje prelazimo red po red.
Adresa A (i) (j) = Osnovna adresa + ((i - r l ) * NC + (j-c l )) * veličina svakog elementa.
- Glavni stup: Gdje prelazimo stupac po stupcu.
Adresa A (i) (j) = Osnovna adresa + ((i - r l ) + (j-c l ) * NR) * veličina svakog elementa.
Složenost: Pristup bilo kojem elementu u nizu je puno jednostavniji i može se obaviti u složenosti O (1).
Zaključak
Nizovi su vrlo jedinstven način strukturiranja pohranjenih podataka tako da se njima lako može pristupiti i može se upitati za dobivanje vrijednosti na određenom broju koristeći vrijednost indeksa. Iako je za umetanje elementa u niz potrebno puno vremena jer je potrebno potpuno preuređivanje i pomicanje postojećih elemenata matrice. Ipak se koristi za implementaciju raznih drugih složenih struktura podataka, kao što su stablo, red čekanja ili stack, a također se koristi u raznim algoritmima.
Preporučeni članak
Ovo je vodič za nizove u strukturi podataka. Ovdje smo raspravljali o stvaranju i pristupu elementima Array u strukturi podataka zajedno sa Svojstvima. Možete i pregledati naše druge povezane članke da biste saznali više -
- Kako stvoriti nizove u PHP-u?
- Nizovi u Java programiranju Prednosti i nedostaci
- Nizovi u C programiranju (primjeri)
- Top 10 pitanja o intervjuu o strukturi podataka