Što je niz nizova?

Niz nizova u računalnom programiranju je struktura podataka koja sadrži još jedan niz na svakom indeksu. To znači da je datum na svakoj sekvencijalnoj adresi u nizu najviše razine zapravo prvi element datuma svakog podniza. Zauzvrat, svaki podniz također može biti niz nizova, dopuštajući ugniježđenje nizova onoliko duboko koliko je potrebno. Iako se koncept može činiti složenim, zapravo postoje vrlo jednostavne oznake deklaracije i dereferenciranja koje omogućuju da se niz nizova vrlo jasno izrazi unutar programa. Jedna od najčešćih upotreba niza nizova je pohranjivanje informacija u obliku mreže, kao što može biti slučaj sa slikom.

Niz je niz podatkovnih elemenata koji se, u većini programskih jezika, pohranjuje na uzastopne memorijske lokacije. Datum koji se drži u nizu naziva se elementom, a svaki element zauzima poziciju u nizu poznatu kao indeks. Početak niza je indeks nula, sljedeći je indeks jedan i tako dalje. Umjesto držanja cijelih brojeva ili znakova, niz nizova sadrži još jedan cijeli niz u svakom indeksu. Ovi pod-nizovi na svakom indeksu mogu sami sadržavati nizove, pružajući mogućnost stvaranja složenih struktura podataka nalik stablu prema potrebi.

Jedna od uobičajenih upotreba za niz nizova je pohranjivanje informacija koje se mogu indeksirati iz mreže s koordinatama stupaca i redaka. Ovo se može koristiti za predstavljanje podataka u proračunskoj tablici, dvodimenzionalnoj (2D) slici koja će se prikazati na zaslonu ili čak šahovskoj ploči. Nizovi polja koji su duboki tri razine, što znači niz koji sadrži nizove koji sadrže treću razinu nizova, mogu se koristiti za predstavljanje informacija u kocki ili se mogu koristiti za predstavljanje matrice informacija u kojoj svaka lokacija ima više od jednog atribut. Općenito, nizovi nizova koji su dublje od tri razine se ne koriste, jer se ista funkcionalnost može jednostavnije implementirati korištenjem niza struktura ili klasa.

Programski zapis za niz nizova mnogo je lakše dešifrirati nego što bi se moglo očekivati. Većina programskih jezika koristi zagrade za označavanje indeksa niza, a višedimenzionalni niz se ne razlikuje, osim što se dodaje dodatni skup zagrada za indeksiranje podniza. Na primjer, jednodimenzionalni niz mogao bi se napisati kao “niz[2]” kako bi se označio element na drugom mjestu indeksa polja. Niz nizova mogao bi se napisati na sličan način — array[ 2 ][ 1 ] — koji označava element datuma u prvom indeksu drugog niza.