A więc mam do wykonanie takie zadanie:
Napisać program, w którym użytkownik podaje graf i otrzymuje informację o stopniu wszystkich wierzchołków oraz stopniu grafu.
Użytkownik podaje liczbę wierzchołków, oraz krawędzi grafu. Następnie program tworzy macierz sąsiedztwa. Potem podlicza ile krawędzi wychodzi od każdego wierzchołka, zapisuje je, a najwyższy stopień jest zarazem stopniem grafu.
Problem polega na tym, że dołączyłem na kurs niedawno i mam spore zaległości. Nie mogę skumać na jakiej zasadzie z liczby wierzchołków i krawędzi powstaje macierz sąsiedztwa.
Znalazłem coś takiego:
// Reprezentacja grafu, za pomoca listy incydencji, gdzie liste zastapiono typem vector
// www.algorytm.org
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int V, E; // V - liczba wierzcholkow, E - liczba krawedzi
cout << "Liczba wierzcholkow: ";
cin >> V;
cout << "Liczba krawedzi: ";
cin >> E;
vector<int> *ZA = new vector<int>[V+1]; // mozna tez wykorzystac liste, nie ma to roznicy
for(int i=1; i<=E; i++) // wprowadz wierzcholki i krawedzie
{
int a, b;
cout << "Krawedz " << i << ": ";
cin >> a >> b;
ZA[a].push_back(b);
ZA[b].push_back(a);
}
for(int i=1; i<=V; i++) // wypisujemy graf
{
cout << endl << "Sasiedzi wierzcholka " << i << ": ";
for(vector<int>::iterator it = ZA[i].begin(); it != ZA[i].end(); ++it) cout << *it << ", ";
}
delete []ZA; // zwalniamy pamiec
}
Wszystko spoko tyle, że nie znam C++. Ogarniam tylko czyste C i dlatego spora część tego kodu jest dla mnie niezrozumiała. Swój program zamierzam również napisać w C. Z tego kodu rozumiem tylko początek, czyli wprowadzanie danych, a najważniejszego tworzenia macierzy nie mogę zrozumieć.