Wiam.
Pisze program do tworzenia grafow za pomoca listy. Nie wiem czemu wyskakuje mi blad przy wyswietalniu moich grafow. Mysle ze to moze byc spowodowane tym ze operacje dodawania krawedzi robie wewnatrz klasy i metoda wyswietalanie nie ma dostepu do dancyh. HELP :/
blad wyskakuje przy linijce cout << wskaznik->powiazany << " waga: "<<" \n";
#include <iostream>
#include <vector>
#define ROZMIAR 100
using namespace std;
struct lista
{
lista *kolejny;
int powiazany;
int waga;
};
class graf
{
private:
int iloscWierzcholkow;
int ilosKrawedzi;
lista *tablica[ROZMIAR];
lista *wskaznik;
public:
//void dodajWierzcholek();
void dodajKrawedz(int pierwszy, int drugi, int waga); // dodaje krawedz miedzy podanymi wierzcholkami
bool polaczenieIstnieje(int pierwszy, int drugi); //sprawdza czy istenije polaczenie miedzy wierzcholkami przydatne przy losowaniu grafow
void wyswietlanie();//wyswietla wierzcholki wraz z polaczeniami
};
void graf::dodajKrawedz(int pierwszy, int drugi, int waga)
{
wskaznik = new lista;
wskaznik->powiazany = drugi;
wskaznik->kolejny = tablica[pierwszy];
tablica[pierwszy] = wskaznik;
}
void graf::wyswietlanie()
{
for (int i = 0; i < 20; i++)
{
cout << "Wierzcholek nr: " << i<<" ";
wskaznik = tablica[i];
while (wskaznik)
{
cout << wskaznik->powiazany << " waga: "<<" \n";
wskaznik = wskaznik->kolejny;
}
}
}
int main()
{
int k;
graf grafcik;
// grafcik.dodajWierzcholek();
grafcik.dodajKrawedz(1, 10, 2);
grafcik.dodajKrawedz(1, 11, 2);
grafcik.dodajKrawedz(3, 2, 3);
grafcik.wyswietlanie();
cin >> k;
return 0;
}