Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <list>
- #include <iterator>
- #include <vector>
- #define nVertex 30
- using namespace std;
- void stvoriGraf(vector<int> adj[], int V)
- {
- for (int i = 0; i < V; i++)
- {
- for (int j = 0; j < V; j++)
- {
- int create_edge = rand() % 7;
- if (create_edge == 1 && i != j)
- {
- adj[i].push_back(j);
- //adj[j].push_back(i);
- }
- }
- }
- }
- void ispisiGraf(vector<int> adj[], int V)
- {
- bool povezani[V][V]; //ovdje cemo pohranjivati vrijednosti 0 ako ne postoji veza a 1 ako postoji
- for (int i = 0; i < V; i++)
- {
- for (int j = 0; j < V; j++)
- {
- povezani[i][j] = 0; //postavljamo sve veze na 0
- }
- }
- for (int i = 0; i < V; i++)
- {
- for (auto j = adj[i].begin(); j != adj[i].end(); j++)
- {
- povezani[i][*j] = 1; //ako veza postoji postavljamo vrijednost na 1
- }
- }
- cout << endl << "Prebrojavanje parova od 3 vrha: " << endl;
- int brojTrokutova = 0;
- for (int a = 0; a < V; a++)
- {
- for (int b = 0; b < V; b++)
- {
- if (a != b && povezani[a][b] == 1) //provjera ako veza izmedju i i j postoji onda je 1
- {
- for (int c = 0; c < V; c++)
- {
- if (a != c && b != c && povezani[b][c] == 1 && povezani[c][a] == 1) {
- //isto tako ako postoje veze b i c, c i a, njihova vrijednost je 1
- cout << "postoji trokut s vrhovima: " << a << " " << b << " " << c << endl;
- brojTrokutova = brojTrokutova + 1;
- }
- }
- }
- }
- }
- cout << "Broj trokutova: " << brojTrokutova / 3 << endl;
- for (int i = 0; i < V; i++)
- {
- for (int j = 0; j < V; j++)
- {
- cout << povezani[i][j] << " ";
- }
- cout << endl;
- }
- }
- int main()
- {
- vector<int> adj[nVertex];
- stvoriGraf(adj, nVertex);
- ispisiGraf(adj, nVertex);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement