Revision: 60601
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 12, 2012 02:05 by nzvorc
Initial Code
#include<iostream>
#include<cstring>
using namespace std;
struct lista{
int sifra;
char vrsta[20], naziv[30];
int dan, mj, god;
float cijena;
lista *sljedeci;
lista *prethodni;
};
lista *L=new lista;
int sif=1;
//1. Dodavanje zapisa u listu
int InsertL(int c, lista *L){
if(c==0) L->sljedeci=NULL;
lista *novi,*zadnji;
zadnji = L;
while (zadnji->sljedeci)
zadnji = zadnji->sljedeci;
novi = new lista;
novi->prethodni=zadnji;
novi->sljedeci=NULL;
zadnji->sljedeci=novi;
novi->sifra=sif++;
if(c!=0)cin.ignore();
cout<<"Unesi vrstu zivotinje: ";
cin.getline(novi->vrsta, 20);
cout<<"Unesi naziv zivotinje: ";
cin.getline(novi->naziv, 30);
cout<<"Unesi cijenu zivotinje: ";
cin>>novi->cijena;
cout<<"Unesi datum dostave:"<<endl;
cout<<"Dan: "; cin>>novi->dan;
cout<<"Mjesec: "; cin>>novi->mj;
cout<<"Godina: "; cin>>novi->god;
if(novi->dan>31 || novi->dan<1 || novi->mj<1 || novi->mj>12 || novi->god<1993) return 0;
return 1;
}
//2. Ispis zapisa liste
void IspisL(int c, lista *L){
lista *tekuci=L->sljedeci;
while (tekuci->sljedeci)
tekuci = tekuci -> sljedeci;
while (tekuci!=L){
cout<<"Sifra: ";
if(tekuci->sifra<10) cout<<"00";
else if(tekuci->sifra<100)cout<<"0";
cout<<tekuci->sifra<<endl;
cout<<"Vrsta: "<<tekuci->vrsta<<endl;
cout<<"Naziv: "<<tekuci->naziv<<endl;
cout<<"Cijena: "<<tekuci->cijena<<endl;
cout<<"Datum: "<<tekuci->dan<<"."<<tekuci->mj<<"."<<tekuci->god<<endl;
cout<<"---------------------" << endl;
tekuci=tekuci->prethodni;
}
}
//3. Pretrazivaje liste
int LocateL(int c, lista *L){
int bz=0;
lista *tekuci=L->sljedeci;
while (tekuci->sljedeci)
tekuci = tekuci -> sljedeci;
while (tekuci!=L){
if(tekuci->god<2012) { tekuci=tekuci->prethodni; continue;}
if(tekuci->god==2012 && tekuci->mj<9) { tekuci=tekuci->prethodni; continue;}
if(tekuci->mj==9 && tekuci->god==2012 && tekuci->dan<=23) { tekuci=tekuci->prethodni; continue;}
cout<<"Sifra: ";
if(tekuci->sifra<10) cout<<"00";
else if(tekuci->sifra<100)cout<<"0";
cout<<tekuci->sifra<<endl;
cout<<"Vrsta: "<<tekuci->vrsta<<endl;
cout<<"Naziv: "<<tekuci->naziv<<endl;
cout<<"Cijena: "<<tekuci->cijena<<endl;
cout<<"Datum dostave: "<<tekuci->dan<<"."<<tekuci->mj<<"."<<tekuci->god<<endl;
cout<<"-----------------------"<<endl;
tekuci=tekuci->prethodni; bz++;
}
return bz;
}
//4. Brisanje prema nazivu
int DeleteL(int c, char naziv[], lista *L){
lista *tekuci = L->sljedeci, *prethodni=L;
lista *sljedeci = tekuci;
while (tekuci){
sljedeci = sljedeci -> sljedeci;
if(!strcmp(naziv, tekuci->naziv)){
prethodni->sljedeci=tekuci->sljedeci;
sljedeci->prethodni=tekuci->prethodni;
delete tekuci;
return 1;
}
prethodni=tekuci;
tekuci = tekuci -> sljedeci;
}
return 0;
}
//5. Brisanje prema vrsti
int DeleteVrstaL(int c, char vrsta[], lista *L){
lista *tekuci = L->sljedeci, *prethodni=L;
lista *sljedeci = tekuci;
while (tekuci){
sljedeci = sljedeci -> sljedeci;
if(!strcmp(vrsta, tekuci->vrsta)){
prethodni->sljedeci=tekuci->sljedeci;
sljedeci->prethodni=tekuci->prethodni;
delete tekuci;
return 1;
}
prethodni=tekuci;
tekuci = tekuci -> sljedeci;
}
return 0;
}
void SortL(int c, lista *L){
cout<<"Nemoze se sortirat pomocu pokazivaca, Merge sort sortira pomocu polja!!!"<<endl;
}
Initial URL
Initial Description
Ovo je datoteka zaglavlja lista_pokazivac.h u kojoj se nalazi implementacija liste pomoću pokazivaÄa. RijeÅ¡enje je realizirano pomoću tkz. vezane liste.
Initial Title
Zadatak1_lista_pokazivac.h
Initial Tags
Initial Language
C++