Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include <list>
- #include <stack>
- #include <iostream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- class Graph
- {
- int N;
- int M;
- bool cikel = false;
- int counter = 0;
- vector<vector<int>> memTable;
- //Funkcije PRIVATE
- void memoizedNumPadRec(int vnos, int current, int length) {
- cout << "Vnos: " << vnos << endl;
- cout << "Current: " << current << endl;
- cout << "Length: " << length << endl;
- length++;
- if (length == vnos) {
- counter++;
- return;
- }
- list<int>::iterator i;
- for (i = sosed[current].begin(); i != sosed[current].end(); i++) {
- memoizedNumPadRec(vnos, *i, length);
- }
- }
- public:
- list<int>* sosed;
- Graph(int N, int M) {
- this->N = N;
- sosed = new list<int>[N];
- this->M = M;
- }
- void dodaj(int v, int v2) {
- sosed[v].push_back(v2);
- }
- //Funkcije PUBLIC
- int memoizedNumPad(int vnos) {
- memoizedNumPadRec(vnos, 0, 0);
- return counter;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement