Return to Snippet

Revision: 60570
at November 11, 2012 21:28 by Quake6


Initial Code
struct z {
        int sifra,dan,mjesec,godina;
        char naziv[60],vrsta[60];
        float cijena;
};

struct t {
        z*element;
        t*slje;
};

t*NextL( int p, t*list_head )
{
        t*pomocna_zivotinja=list_head;
        int br=0;
        while( br<p&&pomocna_zivotinja!=NULL ) {
                pomocna_zivotinja=pomocna_zivotinja->slje;
                br++;
        }
        if( pomocna_zivotinja==NULL ){
            return NULL;
        }
        else{
                return pomocna_zivotinja->slje;
        }
}

t*PreviousL( int p, t*list_head )
{
        t*pomocna_zivotinja=list_head;
        int br=0;
        p=p-2;
        while( br<p&&pomocna_zivotinja!=NULL ) {
                pomocna_zivotinja=pomocna_zivotinja->slje;
                br++;
        }
        if( pomocna_zivotinja==NULL ){
            return NULL;
        }
        else{
                return pomocna_zivotinja->slje;
        }
}

t*LocateL( int n,t*list_head )
{
        t*pomocna_zivotinja=list_head->slje;
        while( pomocna_zivotinja!=NULL ) {
                if( pomocna_zivotinja->element->sifra==n ){
                        return pomocna_zivotinja;
                }
                else {
                    pomocna_zivotinja=pomocna_zivotinja->slje;
                }
        }
        return NULL;
}

void InsertL( z*novi, int p, t*list_head )
{
        t*pomocna_zivotinja = list_head;
        t*novi3=new t;
        novi3->element=novi;
        novi3->slje=NULL;
        int br=0;
        while( br<p&&pomocna_zivotinja!=NULL ) {
                pomocna_zivotinja=pomocna_zivotinja->slje;
                br++;
        }
        if( br<p ){
                return;
        }
        if( pomocna_zivotinja->slje!=NULL ) {
                novi3->slje=pomocna_zivotinja->slje;
                pomocna_zivotinja->slje=novi3;
        } else pomocna_zivotinja->slje=novi3;
}

int DeleteL( int p, t*list_head )
{
        t*pomocna_zivotinja=list_head;
        bool pogresan=false;
        int br=0;
        while( br<p-1 ) {
                pomocna_zivotinja=pomocna_zivotinja->slje;
                if( !pomocna_zivotinja->slje ) {
                        pogresan=true;
                        break;
                }
                br++;
        }
        if( !pogresan ) {
                t*brisani_element=pomocna_zivotinja->slje;
                pomocna_zivotinja->slje=pomocna_zivotinja->slje->slje;
                delete brisani_element;
        }
        return 0;
}

z* FirstL( t*list_head )
{
        return list_head->slje->element;
}

int EndL( t*list_head )
{
        return 0;
}

z * RetrieveL( int p,t*list_head )
{
        t*pomocna_zivotinja=list_head;
        int br=0;
        while( br<p&&pomocna_zivotinja!=NULL ) {
                pomocna_zivotinja=pomocna_zivotinja->slje;
                br++;
        }
        return pomocna_zivotinja->element;
}

void DeleteAll( t*list_head )
{
        if(list_head->slje==NULL){
            return;
        }
        t*pomocna_zivotinja=list_head->slje;
        while( pomocna_zivotinja->slje ) {
                t*novi=pomocna_zivotinja->slje;
                delete pomocna_zivotinja;
                pomocna_zivotinja=novi;
        }
        delete pomocna_zivotinja;
        list_head->slje=NULL;
}

int NumberL( t*list_head )
{
        t*pomocna_zivotinja=list_head;
        int br=0;
        while( pomocna_zivotinja->slje ) {
                pomocna_zivotinja=pomocna_zivotinja->slje;
                br++;
        }
        return br;
}

t* InitL( t*list_head )
{
        list_head= new t;
        list_head->slje=NULL;
        return list_head;
}

Initial URL


Initial Description
Evidencija zivotinja pomocu lista pokazivaca

Initial Title
Evidencija životinja, lista pokazivača - Zadatak_1, Strukture podataka

Initial Tags
podataka

Initial Language
C++