Revision: 60533
Updated Code
at November 11, 2012 05:43 by frafajec
Updated Code
#include<iostream>
using namespace std;
struct podaci{
int sifra,datum;
char naziv[50],vrsta[50];
float cijena;
};
struct lista{
podaci zapis;
lista *slijedeci;
};
void InitL(lista *L){
L -> slijedeci = NULL;
};
int EndL(lista *L){
lista *k = L;
int i = 1;
while(k -> slijedeci){
k = k -> slijedeci;
i++;
};
return i;
};
int FirstL(lista *L){
if(L->slijedeci==NULL){return NULL;}
else return 0;
};
int NextL(int p, lista *L){
lista *k = L;
int i = 0;
while(i < p and k -> slijedeci){
k = k -> slijedeci;
++i;
};
++i;
return i;
};
int PreviousL(int p, lista *L){
lista *k = L;
int i = 0;
while( k -> slijedeci && i<p){
k = k -> slijedeci;
++i;
}
return i-1;
};
int LocateL(podaci x, lista *L){
bool nadeno = false;
int i = 0;
lista *k = L -> slijedeci;
while(!nadeno && k->slijedeci){
++i;
if( x.sifra == k -> zapis.sifra){
nadeno = true;
break;
}
else k = k -> slijedeci;
};
if (nadeno) return i;
else return 0;
};
int InsertL(podaci x, int p, lista *L){
int i=0;
lista *insert,*trenutni, *zadnji;
trenutni = L;
zadnji = L->slijedeci;
while (i<p && trenutni->slijedeci){
trenutni = trenutni->slijedeci;
zadnji = zadnji->slijedeci;
}
insert = new lista;
if(!insert) return 0;
insert -> zapis = x;
trenutni -> slijedeci = insert;
insert -> slijedeci = zadnji;
return 1;
};
int DeleteL(char p[], lista *L){
if(!L)
return 0;
lista *k2 = L -> slijedeci;
lista *k1 = L;
while (k2){
if(!strcmp(p,k2->zapis.naziv)){
k1 -> slijedeci = k2 -> slijedeci;
delete k2;
return 1;
}
if(!strcmp(p,k2->zapis.vrsta)){
k1 -> slijedeci = k2 -> slijedeci;
delete k2;
return 1;
}
k1=k2;
k2=k2->slijedeci;
}
return 0;
}
podaci RetrieveL(int p, lista *L){
int i = 0;
lista *k = L -> slijedeci;
while(i < p && k){
++i;
k = k -> slijedeci;
};
return k -> zapis;
};
void DeleteAllL(lista *L){
lista *k1 = L;
lista *k2 = L -> slijedeci;
while(k2){
delete k1;
k1 = k2;
k2 = k2 -> slijedeci;
};
delete k1;
L = NULL;
};
Revision: 60532
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 11, 2012 04:11 by frafajec
Initial Code
#include<iostream>
using namespace std;
struct podaci{
int sifra,datum;
char naziv[50],vrsta[50];
float cijena;
};
struct lista{
podaci zapis;
lista *slijedeci;
};
void InitL(lista *L){
L -> slijedeci = NULL;
};
int EndL(lista *L){
lista *k = L;
int i = 1;
while(k -> slijedeci){
k = k -> slijedeci;
i++;
};
return i;
};
lista *FirstL(lista *L){
if(L->slijedeci==NULL){return NULL;}
else return L->slijedeci;
};
int NextL(int p, lista *L){
lista *k = L;
int i = 0;
while(i < p and k -> slijedeci){
k = k -> slijedeci;
++i;
};
++i;
return i;
};
int PreviousL(int p, lista *L){
lista *k = L;
int i = 0;
while( k -> slijedeci && i<p){
k = k -> slijedeci;
++i;
}
return i-1;
};
int LocateL(podaci x, lista *L){
bool nadeno = false;
int i = 0;
lista *k = L -> slijedeci;
while(!nadeno && k->slijedeci){
++i;
if( x.sifra == k -> zapis.sifra){
nadeno = true;
break;
}
else k = k -> slijedeci;
};
if (nadeno) return i;
else return 0;
};
int InsertL(podaci x, int p, lista *L){
int i=0;
lista *insert,*trenutni, *zadnji;
trenutni = L;
zadnji = L->slijedeci;
while (i<p && trenutni->slijedeci){
trenutni = trenutni->slijedeci;
zadnji = zadnji->slijedeci;
}
insert = new lista;
if(!insert) return 0;
insert -> zapis = x;
trenutni -> slijedeci = insert;
insert -> slijedeci = zadnji;
return 1;
};
int DeleteL(char p[], lista *L){
if(!L)
return 0;
lista *k2 = L -> slijedeci;
lista *k1 = L;
while (k2){
if(!strcmp(p,k2->zapis.naziv)){
k1 -> slijedeci = k2 -> slijedeci;
delete k2;
return 1;
}
if(!strcmp(p,k2->zapis.vrsta)){
k1 -> slijedeci = k2 -> slijedeci;
delete k2;
return 1;
}
k1=k2;
k2=k2->slijedeci;
}
return 0;
}
podaci RetrieveL(int p, lista *L){
int i = 0;
lista *k = L -> slijedeci;
while(i < p && k){
++i;
k = k -> slijedeci;
};
return k -> zapis;
};
void DeleteAllL(lista *L){
lista *k1 = L;
lista *k2 = L -> slijedeci;
while(k2){
delete k1;
k1 = k2;
k2 = k2 -> slijedeci;
};
delete k1;
L = NULL;
};
Initial URL
Initial Description
Datoteka zaglavlja gdje je ATP lista implementirana pomocu pokazivaca
Initial Title
lista_pokazivaci.h
Initial Tags
podataka
Initial Language
C++