You are on page 1of 5

Dvostruka lista

Cvor *iniCvor(int broj){


Cvor *pok=new Cvor();
pok->broj=broj;
pok->sljedeci=NULL;
pok->prethodni=NULL;
return pok;
}

void dodajNaPocetak(Cvor *novi){
if(glava==NULL)
glava=novi;
else{
glava->prethodni=novi;
novi->sljedeci=glava;
glava=novi;
}
}

Cvor *traziBroj (int broj) {
Cvor *tmp=glava;
while(tmp!=NULL){
if(tmp->broj==broj){
return tmp;}
tmp=tmp->sljedeci;
}
return NULL;
}

void ispisiSvuListu(){
// cout<<glava->sljedeci->sljedeci->broj;
Cvor *tmp=glava;
cout<<endl;
while(tmp!=NULL){
cout<<tmp->broj<<" ";
tmp=tmp->sljedeci;
}
cout<<endl;
}

void dodajNaKraj (Cvor *novi){
if(glava==NULL)
glava=novi;
else{
Cvor *tmp=glava;
while(tmp->sljedeci!=NULL){
tmp=tmp->sljedeci;}
novi->prethodni=tmp;
tmp->sljedeci=novi;}
}

void dodajNaPoziciju (Cvor *novi, int pozicija){
if(pozicija==1){
dodajNaPocetak(novi);
return;}
if(pozicija==(brojElemenata()+1)){
dodajNaKraj(novi);
return;}
else {
Cvor *tmp=glava;
for (int i=0; i<pozicija-2; i++) tmp=tmp->sljedeci;
tmp->sljedeci->prethodni=novi;
novi->sljedeci=tmp->sljedeci;
novi->prethodni=tmp;
tmp->sljedeci=novi;
}
}

int brojElemenata(){
Cvor *tmp=glava;
int brojac=0;
while(tmp!=NULL){
tmp=tmp->sljedeci;
brojac++;}
return brojac;
}

void brisiSaPocetka(){
if (glava!=NULL){
Cvor *zbrisan=glava;
glava=glava->sljedeci;
glava->prethodni=NULL;
zbrisan->sljedeci=NULL;
delete zbrisan;
}
}


void brisiSaKraja(){
if (glava!=NULL){
if(brojElemenata()==1) { //if(glava->sljedeci==NULL)
brisiSaPocetka();
return; }
Cvor *tmp=glava;
while(tmp->sljedeci->sljedeci!=NULL){
tmp=tmp->sljedeci;}
Cvor *zbrisan=tmp->sljedeci;
tmp->sljedeci=NULL;
zbrisan->prethodni=NULL;
delete zbrisan;
}
}


void brisiSaPozicije (int pozicija){
if(pozicija==1) {
brisiSaPocetka();
return;
}
if(pozicija==brojElemenata()){
brisiSaKraja();
return;
}
else {
Cvor *tmp=glava;
for (int i=0; i<pozicija-2; i++)tmp=tmp->sljedeci;
Cvor *zbrisan=tmp->sljedeci;
tmp->sljedeci=tmp->sljedeci->sljedeci;
tmp->sljedeci->prethodni=tmp;
zbrisan->sljedeci=NULL;
zbrisan->prethodni=NULL;
delete zbrisan;
}
}

void ispisiListuUnazad(){
// cout<<glava->sljedeci->sljedeci->broj;
Cvor *tmp=glava;
cout<<endl;
while(tmp->sljedeci!=NULL){
tmp=tmp->sljedeci;
}
while(tmp!=NULL){
cout<<tmp->broj<<" ";
tmp=tmp->prethodni;
}
cout<<endl;
}

Fibonaci: int fib(int m){
if(m==1 || m==2)
return 1;
else return (fib(m-1)+fib(m-2));
}
Cvor *generisiListu(int *niz, int duzina){
Cvor *glava=NULL;
Cvor *tmp=NULL;
for(int i=0; i<duzina; i++){
tmp=iniCvor(niz[i]);
dodajNaKraj(glava, tmp);
}
return glava;
}

void uporediPrezime(string prezime, int brUnosa){
bool ima;
for(int i=0; i<brUnosa;i++){
int jednaki = strcmp(prezime.c_str(), im[i].prezime.c_str());
if(jednaki==0){
cout<<im[i].ime<<endl<<im[i].prezime<<endl<<im[i].telefon<<endl;
ima=true;}}
if(ima!=true)
cout<<"Nema trazenog kontakta!"<<endl;}


void pop(Cvor *&glava, Cvor *novi){
if(glava==NULL)
glava=novi;
else{
novi->sljedeci=glava;
glava=novi;
}}

Cvor *kreirajStek(int *niz, int duzina){
Cvor *glava=NULL;
Cvor *tmp=NULL;
int suma=0;
for(int i=duzina-1; i>=0; i--){
tmp=iniCvor(niz[i]);
pop(glava, tmp);
suma+=niz[i];
}
tmp=iniCvor(suma);
pop(glava, tmp);
return glava;
}
void ispisi(Stek *s){
Cvor *tmp=s->glava;
while(tmp!=NULL){
cout<<tmp->broj<<" ";
tmp=tmp->sljedeci; }}

Unos I bublesort!

void zamjeni( int &br1, int &br2) {
int temp=br1;
br1=br2;
br2=temp;}

void bubbleSort(int *niz, int duzina) {
int i=0;
bool zamjena=true;
while (zamjena) {
zamjena=false;
for (int j=0; j<duzina-1-i; j++) {
if (niz[j]>niz[j+1]){
zamjeni(niz[j], niz[j+1]);
zamjena=true;}
}
i++;}}

int *unos(int *niz, int broj, int &duzina) {
/* if (duzina==0) {
int *niz2;
niz2=new int[duzina+1];
niz2[0]=broj;
duzina++;
return niz2;}
else {*/
int *niz2;
niz2=new int[duzina+1];
for (int i=0; i<duzina; i++)
niz2[i]=niz[i];
niz2[duzina]=broj;
duzina++;
bubbleSort(niz2, duzina);
delete []niz;
return niz2;}

int main () {
int broj, duzina=0;
int *niz;
while (broj!=0) {
cout<<"Unesi broj!"<<endl;
cin>>broj;
if(broj==0) break;
niz=unos(niz,broj,duzina);
for (int i=0; i<duzina; i++) cout<<niz[i]<<" ";}
system ("pause");
return 0; }

You might also like