Molim vas da mi pregledate u cemu je problem u ovom resenju zadatka sa vezanom listom. Kompajler mi ne javlja gresku nikakvu ali kad se program pokrene onda zablokira:
#include <iostream>
using namespace std;
struct el {
double koef;
struct el *sljedeci;
};
class Polinomi {
private:
struct el *pocetak_liste, *kraj_liste, *novi_element;
int stupanj;
public:
Polinomi() {
pocetak_liste = kraj_liste = novi_element = NULL;
stupanj = 0;
}
Polinomi(int st) {
stupanj = st;
pocetak_liste = kraj_liste;
cout << "Upisite koeficijente: " << endl;
novi_element = (struct el *) malloc(sizeof(struct el));
if (novi_element ==NULL) {
cout << "Nema dovoljno memorije!" << endl;
exit (1);
};
for (int i = 0; i < (st+1); i++) {
cout << i << ". koeficijent: ";
cin >> novi_element->koef;
novi_element->sljedeci = kraj_liste;
if (pocetak_liste == kraj_liste)
pocetak_liste = novi_element;
else {
kraj_liste = novi_element;
};
};
}
Polinomi(struct el *lista) {
int i = 0;
pocetak_liste = (struct el *) malloc(sizeof(struct el));
kraj_liste = (struct el *) malloc(sizeof(struct el));
pocetak_liste = lista;
novi_element = (struct el *) malloc(sizeof(struct el));
if (novi_element ==NULL) {
cout << "Nema dovoljno memorije!" << endl;
exit (1);
};
for (lista = pocetak_liste; lista != kraj_liste ; lista = lista->sljedeci) {
i++;
novi_element->koef = lista->koef;
novi_element = novi_element->sljedeci;
kraj_liste = novi_element;
};
stupanj = i;
}
Polinomi operator+(const Polinomi &a) {
struct el *zbroj = NULL;
if (stupanj <= a.stupanj) {
for (zbroj = pocetak_liste; zbroj != kraj_liste; zbroj = zbroj->sljedeci) {
zbroj->koef = novi_element->koef + a.novi_element->koef;
zbroj->sljedeci = novi_element->sljedeci;
};
for (zbroj = a.novi_element; zbroj != a.kraj_liste; zbroj = zbroj->sljedeci) {
zbroj->koef = a.novi_element->koef;
zbroj->sljedeci = a.novi_element->sljedeci;
};
};
if (stupanj > a.stupanj) {
for (zbroj = a.pocetak_liste; zbroj != a.kraj_liste; zbroj = zbroj->sljedeci) {
zbroj->koef = novi_element->koef + a.novi_element->koef;
zbroj->sljedeci = a.novi_element->sljedeci;
};
for (zbroj = novi_element; zbroj != kraj_liste; zbroj = zbroj->sljedeci) {
zbroj->koef = novi_element->koef;
zbroj->sljedeci = novi_element->sljedeci;
};
};
return Polinomi(zbroj);
}
~Polinomi() {
delete [] pocetak_liste;
delete [] kraj_liste;
delete [] novi_element;
};
};
int main() {
Polinomi *A = new Polinomi;
Polinomi b(3);
return 0;
}




zadatak sa vezanom listom
