TABLICE
Deklaracja:
typ_elementów nazwa tablicy [liczba_elementów];
int tab[8];
Deklaracja i inicjalizacja:
int tab [ ]={3,6,5,7,8};
Odwołanie do elementu:
tab [3];
lub przez wskaźnik:
*(tab+3);
Przekazywanie tablicy do funkcji Przy deklarowaniu i definiowaniu:
typ funkcja (int tab[10]) lub typ funkcja (int tab[ ]) przy wywoływaniu :
funkcja (tab);
Tablica dynamiczna
int *a; lub int *a=new int [n];
a=new int[n];
delete[] a;
Tablice dwuwymiarowe
Deklaracja typ nazwa [w][k];
Inicjalizacja int liczby [2][3]={{1,0,2}, {3,2,6}};
Odwołanie liczby [0][1];
Dynamicznie int **tab;
tab = new int *[w];
for (i=0; i<w; i++) tab[i]=new int[k];
for (i=0; i<w; i++) delete [] tab[i];
delete [] tab; odwołanie tab[i][j];
LISTY
struct wezel
{int elem; wezel *next;
wezel(int x, wezel *t) {elem=x;
next=t;
} };
Odwołania
(*x).elem; x->elem;
(*x).next; x->next;
Usunięcie węzła za x:
t=x->next;
x->next=t->next;
delete t;
x->next=x->next->next;
Wstawienie węzła za x:
t->next=x->next;
x->next=t;
Trawersowanie:
(x- wskaźnik do pierwszego elementu, ostatni węzeł ma pusty wskaźnik,
visit – procedura przetwarzająca element przechowywany w węźle podany do funkcji jako argument)
for (wezel *t=x; t!=NULL; t=t->next) visit (t->elem);
dla tablicy:
for (int i=0; i<n; i++) visit (a[i]);
Odwracanie porządku listy:
(r – wskaźnik do już przetworzonego fragmentu listy,
y– wskaźnik do jeszcze nie przetworzonego fragmentu listy, funkcja zwraca wskaźnik do węzła, który po przetworzeniu będzie pierwszym, łącze ostatniego będzie puste)
wezel * odwroc (wezel*x) {wezel *t, y=x, r= NULL;
while (y!=NULL) {t=y->next;
y->next=r;
r=y;
y=t;
} return r;
}