Deo zbornika Učimo strukture podataka

Matrica

Matrica je tabelarna struktura podataka u kojoj se najčešće nalaze brojevi. Naziva se i dvodimenzionalnim nizom, jer su njeni elementi jednodimenzionalni nizovi.

Matricu možemo predstaviti kao tabelu koja ima m redova i n kolona, sa ćelijama označenim indeksima. Matrice se mogu množiti i zbrajati međusobno, a s vektorima i skalarima se mogu množiti.

Matrice često služe za čuvanje mape u igrama i za predstavljanje transformacija u 3D grafici.

Zapis matrice

U većini programskih jezika, matrice zapisujemo nizovima unutar niza. Vrednostima pristupamo pomoću dva indeksa, od kojih prvi predstavlja red, a drugi kolonu.

Zapis matrice u Javaskriptu

const mapa = [
  [1, 1, 1, 1, 1],
  [1, 0, 0, 0, 1],
  [1, 0, 0, 2, 1],
  [1, 0, 2, 0, 1],
  [1, 1, 1, 1, 1],
]

console.log(mapa[2][3])

Zapis matrice u C

U jeziku C, dvodimenzionalni nizovi se mogu inicijalizovati slično kao jednodimenzionalni, dodelom vrednosti svim elementima na sledeći način:

int matrica[3][4] = {
    {0, 1, 2, 3} ,
    {4, 5, 6, 7} ,
    {8, 9, 10, 11}
};

Pošto su elementi niza opet nizovi, imamo ugnježdene vitičaste zagrade.

Alokacija memorije

Na primer u jeziku C, sledeća matrica smeštena u dvodimenzionalni niz

int matrica[10][15]

bi rezervisala prostor za 10 * 15 odnosno 150 varijabli tipa int.

Prolazak kroz matricu

Pošto za prolazak kroz niz treba jedna petlja, za prolazak kroz dvodimenzionalni niz potrebne su dve petlje, jedna unutar druge:

const matrica = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
]

for (let i = 0; i < matrica.length; i++) {
  for (let j = 0; j < matrica[i].length; j++) {
    console.log(matrica[i][j])
  }
}