Return to Snippet

Revision: 60647
at November 12, 2012 04:39 by dfilipov


Initial Code
struct s_datum {
	unsigned int dan;
	unsigned int mjesec;
	unsigned int godina;
};

struct s_zapis {
	short sifra;
	char vrsta[50];
	char naziv[50];
	float cijena;
	s_datum datum;
};

struct lista {
	s_zapis zapis[100];
	int cursor;
};
typedef int element;


element EndL(lista *L) {
	return L->cursor;
}

element FirstL(lista *L) {
	if (L->cursor == NULL)
		return EndL(L);
	else
		return 0;
}

element NextL(element p, lista *L) {
	if (p == EndL(L))
		return -1;
	else
		return p+1;
}

element PreviousL(element p, lista *L) {
	if (p == FirstL(L))
		return -1;
	else
		return p-1;
}

element LocateL(s_zapis X, lista *L) {
	for (int i=0; i < EndL(L); i++)
		if (!strcmp(X.vrsta, L->zapis[i].vrsta))
			return i;
		else if (!strcmp(X.naziv, L->zapis[i].naziv))
			return i;
	
	return EndL(L);
}

bool InsertL(s_zapis X, element p, lista *L) {
	if (p > L->cursor) return false;
	else {
		for (int i=L->cursor; i >= p; i--) {
			L->zapis[i+1] = L->zapis[i];  
		}
		
		L->zapis[p] = X;	
		
		L->cursor++;
		return true;
	}
}

bool DeleteL(element p, lista *L) {
	if (p > L->cursor)
		return false;
		
	for (int i=p; i<L->cursor; i++) {
		L->zapis[i] = L->zapis[i+1];
	}
	L->cursor--;
	return true;
}

s_zapis RetrieveL(element p, lista *L) {
	return L->zapis[p];
}

lista *InitL(lista *L) {
	L = new lista;
	L->cursor = 0;
	return L;
}

Initial URL


Initial Description
Zaglavlje lista_polje.h

Initial Title
SP Zadatak 1 - implementacija pomocu polja

Initial Tags
podataka

Initial Language
C++