Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- class matr {
- int** a;
- int n, m;
- public:
- matr(int in, int im) {
- n = in;
- m = im;
- a = new int*[n];
- for (int i = 0; i < n; i++)
- a[i] = new int[m];
- }
- int get_element(int i, int j) {
- return a[i][j];
- }
- int get_n() {
- return n;
- }
- int get_m() {
- return m;
- }
- void read() {
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++)
- cin >> a[i][j];
- }
- }
- ~matr() {
- for (int i = 0; i < n; i++)
- delete a[i];
- delete [] a;
- }
- };
- class graph {
- vector<int>* a;
- matr* matr_s;
- int n, k;
- public:
- graph(matr* matr_S, matr* matr_i) {
- matr_s = matr_S;
- n = matr_s->get_n();
- k = matr_i->get_n();
- a = new vector<int>[n];
- int v = 0, u = 0, t;
- for (int i = 0; i < k; i++){
- for (int j = 0; j < n; j++) {
- t = 0;
- v = 0;
- u = 0;
- if (matr_i->get_element(i, j) == 1) {
- u = j;
- t++;
- } else
- if (matr_i->get_element(i, j) == -1) {
- v = j;
- t++;
- }
- if (t == 2)
- break;
- }
- a[v].push_back(u);
- }
- }
- ~graph() {
- for (int i = 0; i < n; i++) {
- a[i].erase(a[i].begin(), a[i].end());
- }
- delete [] a;
- }
- };
- find_path(int start, int finish) {
- }
- int main() {
- int n, m;
- cout<<"Number of vertices:"<<endl;
- cin >> n;
- cout<<"Number of edges:"<<endl;
- cin >> m;
- matr* s = new matr(n, n);
- s -> read();
- matr* i = new matr(m, n);
- i -> read();
- graph(s, i);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement