#include #include using namespace std; template class Matrica { public: Matrica( int i, int j ) { _Elementi.resize( i ); for( int k=0; k& operator[] ( unsigned i ) { return _Elementi[i]; } const vector& operator[] ( unsigned i ) const { return _Elementi[i]; } private: vector< vector > _Elementi; }; // osnova za dalju upotrebu grafa template class Graf { private: class Cvor { public: Cvor( const tVrednost& v ) : _Vrednost(v) {} tVrednost _Vrednost; }; class Poteg { public: Poteg( unsigned o, unsigned d ) : _od(o), _do(d) {} unsigned _od, _do; }; public: Graf( unsigned n ) : _MaxVelicina( n ), _Potezi( n, n, false ) {} void DodajCvor( const tVrednost& v ) { if( _Cvorovi.size() >= _MaxVelicina ) throw "Dodaje se previse cvorova u graf."; _Cvorovi.push_back( Cvor(v) ); } void DodajPoteg( unsigned o, unsigned d ) { _Potezi[o][d] = true; } bool PostojiNeposredanPut( unsigned o, unsigned d ) { return _Potezi[o][d]; } private: unsigned _MaxVelicina; vector _Cvorovi; Matrica _Potezi; }; main() { Graf g(20); g.DodajCvor( 1 ); g.DodajCvor( 2 ); g.DodajPoteg( 0, 1 ); }