Revision: 61424
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at December 11, 2012 22:37 by idurlen1
Initial Code
#include <iostream>
#include <cstring>
using namespace std;
struct podaci{
long sifra;
char naziv[50], vrsta[60];
float cijena;
int dan, mj, god;
podaci *pret, *slj;
};// struct
podaci *Lista;
void InitL(){
Lista = new podaci;
Lista->pret = NULL;
Lista->slj = NULL;
}
int FirstL(){
if (Lista->slj)
return 0;
}// FirstL();
int LastL(){
if (Lista->slj == 0)
return 0;
podaci *zadnji;
zadnji = Lista;
int i = 0;
while(zadnji->slj){
zadnji = zadnji->slj;
i++;
}
return i;
}//LastL();
int LocateL1(char naziv[]){
int i, j;
i = 0;
bool nadjeno = false;
podaci *element = Lista;
while(element->slj){
if (strcmp(element->naziv, naziv) == 0){
nadjeno = true;
break;
}
element = element->slj;
i++;
}
if (nadjeno)
return i;
else
return -1;
}// LocateL1();
int LocateL2(char naziv[]){
int i, j;
i = 0;
bool nadjeno = false;
podaci *element = Lista;
while(element->slj){
if (strcmp(element->vrsta, naziv) == 0){
nadjeno = true;
break;
}
element = element->slj;
i++;
}
if (nadjeno)
return i;
else
return -1;
}// LocateL2();
int InsertL(int pozicija, podaci P){
podaci *zadnji, *novi;
zadnji = Lista;
while(zadnji->slj)
zadnji = zadnji->slj;
novi = new podaci;
novi->pret = zadnji;
novi->slj = NULL;
zadnji->slj = novi;
strcpy(zadnji->naziv, P.naziv);
zadnji->sifra = P.sifra;
strcpy(zadnji->vrsta, P.vrsta);
zadnji->cijena = P.cijena;
zadnji->dan = P.dan;
zadnji->mj = P.mj;
zadnji->god = P.god;
return 0;
}// InsertL();
int DeleteL1(char naziv[]){
podaci *prethodni, *element, *sljedeci;
element = Lista->slj;
bool nadjen = false;
if (LocateL1(naziv) == -1)
return 0;
if(LocateL1( naziv) == 0){
if(element->slj){
sljedeci = element->slj;
prethodni = element->pret;
sljedeci->pret = prethodni;
prethodni->slj = sljedeci;
delete element;
}
else{
Lista->slj = NULL;
delete element;
}
nadjen = true;
}
else{
while(element){
if (strcmp(element->naziv, naziv) == 0){
sljedeci = element->slj;
prethodni = element->pret;
sljedeci->pret = prethodni;
prethodni->slj = sljedeci;
delete element;
nadjen = true;
break;
}
else
element = element->slj;
}
}
if(nadjen)
return 1;
else
return 0;
}// DeleteL1();
int DeleteL2(char naziv[]){
podaci *prethodni, *element, *sljedeci;
element = Lista->slj;
bool nadjen = false;
if (LocateL2(naziv) == -1)
return 0;
if(LocateL2( naziv) == 0){
if(element->slj){
sljedeci = element->slj;
sljedeci->pret = Lista;
Lista->slj = sljedeci;
delete element;
}
else{
Lista->slj = NULL;
delete element;
}
nadjen = true;
}
while(element){
if (strcmp(element->vrsta, naziv) == 0){
prethodni = element->pret;
sljedeci = element->slj;
sljedeci->pret = prethodni;
prethodni->slj = sljedeci;
delete element;
nadjen = true;
break;
}
else
element = element->slj;
}
if(nadjen)
return 1;
else
return 0;
}// DeleteL2();
podaci RetreiveL(int indeks){
podaci *element;
element = Lista;
podaci pod;
for (int i = 0; i<indeks; i++)
element = element->slj;
strcpy(pod.naziv, element->naziv);
pod.sifra = element->sifra;
strcpy(pod.vrsta, element->vrsta);
pod.cijena = element->cijena;
pod.dan = element->dan;
pod.mj = element->mj;
pod.god = element->god;
return pod;
}// RetreiveL();
Initial URL
Initial Description
zadatak iz SP-a
Initial Title
lista_pokazivac.h
Initial Tags
data, list, podataka
Initial Language
C++