#pragma once //tu w sumie nic nie ma class Krawedz { public: friend class Graf; private: int K_W1; int K_W2; int K_waga = -1; }; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// #pragma once #include #include #include "Krawedz.h" class Wierzcholek { public: friend class Graf; void UstawWierzcholek(const int ile); //Do sprawdzania spojnej skladowej void WDFS(int v, int &skladowa); private: //wektor wag krawedzi do danego sasiada std::vector W_waga; //Adresy sasiadow Wierzcholek **W_sasiedzi; //Przechowuje informacje czy wierzcholek zostal juz odiwedzony int W_odwiedzony; //Informacje o skladowej do ktorej nalezy wierzcholek int W_skladowa; //Ile sasiadow ma dany wierzcholek int W_ilosc_sasiadow; //Sluzy do zwalniania pamieci //w przypadku gdy nie udalo sie wygenerowac spojnej skladowej za pierwszym razem int W_free = 0; //Numer wierzcholka(numerujemy od 0) int W_nr_wierzcholka; }; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// #include "Wierzcholek.h" void Wierzcholek::UstawWierzcholek(const int ile) { W_sasiedzi = new Wierzcholek *[ile]; } void Wierzcholek::WDFS(int v, int &skladowa) { W_skladowa = skladowa; W_odwiedzony = 1; for(int i = 0; i < W_ilosc_sasiadow; i++) { if(W_sasiedzi[i] -> W_odwiedzony == -1) { W_sasiedzi[i]->WDFS(i,skladowa); } } }