#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 <iostream>
#include <vector>
#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<int> 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);
}
}
}