/ Published in: C++
Implementacija liste pomoću polja
Expand |
Embed | Plain Text
#include <cstring> struct ZIV { int sif, cij, dan, mjesec, god; char naziv [20], vrsta [30]; }; ZIV zivotinj; struct list { int sif[1000], cij[1000], dan[1000], mjesec[1000], god[1000]; char naziv [20][1000], vrsta [30][1000]; int pointer; }; typedef int el; el ENDL (list *L) { return L->pointer; } el FIRSTL (list *L) { if (L->pointer == 0) ENDL(L); return 0; } el NEXTL (el position, list *L) { if ((position >= L->pointer) || (position < 0)) return 0; return(position + 1); } el PREVIOUSL (el position, list *L) { if ((position > L->pointer) || (position <= 0)) return (position - 1); } el INSERTL (ZIV z, el position, list *L) { int br; if ((position <= L->pointer) && (position >= 0)) { for (br=L->pointer; br >= position; br --) { L->sif[br] = L->sif[br-1]; L->cij[br] = L->cij[br-1]; L->dan[br] = L->dan[br-1]; L->mjesec[br] = L->mjesec[br-1]; L->god[br] = L->god[br-1]; strcpy (L->naziv[br],L->naziv[br-1]); strcpy (L->vrsta[br],L->vrsta[br-1]); } L->pointer ++; L->sif[position] = z.sif; L->cij[position] = z.cij; L->dan[position] = z.dan; L->mjesec[position] = z.mjesec; L->god[position] = z.god; strcpy (L->naziv[position],z.naziv); strcpy (L->vrsta[position],z.vrsta); return 1; } else return 0; } el DELETEL (el position, list *L) { int br; if ((position < L->pointer) && (position >= 0)) { for (br = position; br < L->pointer; br ++){ L->sif[br] = L->sif[br+1]; L->cij[br] = L->cij[br+1]; L->dan[br] = L->dan[br+1]; L->mjesec[br] = L->mjesec[br+1]; L->god[br] = L->god[br+1]; strcpy(L->naziv[br],L->naziv[br+1]); strcpy(L->vrsta[br],L->vrsta[br+1]); } L->pointer --; return 1; } else return 0; } el DELETEALLL (list *L) { L->pointer = 0; return 0; } list *INITL (list *L) { L = new list; L->pointer = 0; return L; }
You need to login to post a comment.
