Return to Snippet

Revision: 60698
at November 12, 2012 07:31 by mmilutin2


Initial Code
using namespace std;
int sifra=1;

struct tzivotinja {
       int sifra;
       char vrsta[30],naziv[30];
       float cijena;
       tm datum;
       tzivotinja *sljedeci;
       };

tzivotinja *lista = new tzivotinja;

void initL(tzivotinja *lista){
     lista->sljedeci = NULL;
     }
     
int endL(tzivotinja *lista){
    tzivotinja *tekuci = lista;
    int b=1;
    while(tekuci->sljedeci){
                            tekuci=tekuci->sljedeci;
                            b++;
                            }
    return b;
    }
    
int firstL(tzivotinja *lista){
    if(lista->sljedeci == NULL) return endL(lista);
    else return 0;
    }
    
int previousL(int p,tzivotinja *lista){
    if(p == firstL(lista)) return -1;
    else return p-1;
    }
    


tzivotinja retrieveL(int p, tzivotinja *lista){
           tzivotinja *tekuci = lista->sljedeci;
           for(int i=0;i<p;i++) tekuci = tekuci->sljedeci;
           return *tekuci;
           }
           
int locateL(int v, tzivotinja *lista){
    tzivotinja *tekuci = lista->sljedeci;
    int br = 0;
    while(tekuci){br++;
                  tekuci = tekuci->sljedeci;
                  }
    return br;    
    }
           
tzivotinja * nextL(int p,tzivotinja *lista){
    if(p == endL(lista)) return NULL;
    else{
         tzivotinja tekuci = retrieveL(p,lista);
         return tekuci.sljedeci;}
    }


void Vrati(tzivotinja element,int p, tzivotinja* lista) {
     tzivotinja *tekuci=lista->sljedeci;
     for(int i=0;i<p;i++) tekuci=tekuci->sljedeci;
     tekuci->sifra = element.sifra;
     tekuci->cijena = element.cijena;
     strcpy(tekuci->naziv,element.naziv);
     strcpy(tekuci->vrsta,element.vrsta);
     tekuci->datum = element.datum;
     }
     


void reverse(tzivotinja *lista)
{
    if(lista->sljedeci == NULL) return;

    tzivotinja *prev = NULL, *current = NULL, *next = NULL;
    current = lista->sljedeci;
    while(current != NULL){
        next = current->sljedeci;
        current->sljedeci = prev;
        prev = current;
        current = next;
    }
    lista->sljedeci = prev;
}
     
int insertL(tzivotinja *novi, int p, tzivotinja *lista){
     tzivotinja *tekuci = lista;

     for(int i=1;i<p;i++)
             tekuci = tekuci->sljedeci;
     novi->sljedeci = tekuci->sljedeci;
     tekuci->sljedeci = novi;

     sifra++;
     if((tekuci->sljedeci)->sifra == novi->sifra) return 1;
     else return 0;
     }
     

     
void deleteL(int p, tzivotinja *lista){
           tzivotinja *tekuci = lista->sljedeci;
           tzivotinja *prethodni = lista;
           
           for(int i=0;i<p;i++){
                   tekuci = tekuci->sljedeci;
                   prethodni = prethodni->sljedeci;
                   }
           prethodni->sljedeci = tekuci->sljedeci;
           delete tekuci;
     }

Initial URL

                                

Initial Description
Pošto se radi o strogo zadanim funkcijama koje su iste svim studentima, nema nekih prevelikih razlika u kodu osim u drugačijim nazivima varijabli te rasporedu pisanja samih funkcija.

Initial Title
Zadatak 1 Lista pokazivači Mario Milutin

Initial Tags

                                

Initial Language
C++