#include #include typedef struct cvor_liste{ int broj; struct cvor_liste *sledeci; }CVOR; void ubaci_na_pocetak(CVOR **pl,int br); CVOR* napravi_cvor(int br); void ispis(CVOR *pl); void obrisi(CVOR **pl); void ubaci_na_kraj(CVOR **pl, int br); CVOR* ucesljaj(CVOR *pl1, CVOR *pl2); CVOR* obrni(CVOR *pl); int main(){ CVOR *pocetak1, *pocetak2, *pocetak; pocetak1=NULL; pocetak2=NULL; pocetak=NULL; int i; for(i=0;i<10;i++){ ubaci_na_pocetak(&pocetak1,i); ubaci_na_pocetak(&pocetak2,i); } printf("Nakon ucesljavanja\n"); pocetak=ucesljaj(pocetak1, pocetak2); ispis(pocetak); pocetak = obrni(pocetak); printf("Nakon obrtanja\n"); ispis(pocetak); obrisi(&pocetak); ispis(pocetak); return 0; } void ubaci_na_pocetak(CVOR **pl,int br){ CVOR *novi=napravi_cvor(br); novi->sledeci=*pl; *pl=novi; } CVOR* napravi_cvor(int br){ CVOR* novi=(CVOR*)malloc(sizeof(CVOR)); if(novi==NULL){ printf("Greska pri ucitavanju!\n"); return ; } novi->broj=br; novi->sledeci=NULL; return novi; } void ispis(CVOR *pl){ while(pl!=NULL){ printf("%d\n",pl->broj); pl=pl->sledeci; } } void obrisi(CVOR **pl){ CVOR* temp; while((*pl)!=NULL){ temp=(*pl); (*pl)=(*pl)->sledeci; free(temp); } } void ubaci_na_kraj(CVOR **pl, int br){ CVOR* temp; CVOR* novi; novi=napravi_cvor(br); if((*pl)==NULL){ *pl=novi; return; } temp=(*pl); while(temp->sledeci!=NULL){ temp=temp->sledeci; } temp->sledeci=novi; } CVOR* ucesljaj(CVOR *pl1, CVOR *pl2){ CVOR* nova=NULL; while(pl1!=NULL && pl2!=NULL){ ubaci_na_kraj(&nova, pl1->broj); ubaci_na_kraj(&nova, pl2->broj); pl1=pl1->sledeci; pl2=pl2->sledeci; } while(pl1!=NULL){ ubaci_na_kraj(&nova, pl1->broj); pl1=pl1->sledeci; } while(pl2!=NULL){ ubaci_na_kraj(&nova, pl2->broj); pl2=pl2->sledeci; } return nova; } CVOR* obrni(CVOR *pl){ CVOR *prethodni=NULL; CVOR *pomocni; for(;pl->sledeci!=NULL;pl=pomocni){ pomocni=pl->sledeci; pl->sledeci=prethodni; prethodni=pl; } pl->sledeci=prethodni; return pl; }