BFS - czy dobrze napisałem?
Ostatnio zmodyfikowano 2011-12-30 20:31
matoł115 Temat założony przez niniejszego użytkownika |
BFS - czy dobrze napisałem? » 2011-12-30 20:29:46 Witam! Mógłby ktoś zobaczyć ,czy dobrze BFS napisałem? #include <vector> #include <iostream> #include <queue> using namespace std; vector < int > a[ 5 ]; queue < int > kolejka; int color[ 5 ], odleglosc[ 5 ], rodzic[ 5 ]; void BFS( int x ) { int i, r; kolejka.push( x ); do { x = kolejka.front(); color[ x ] = 1; for( i = 0; i < a[ x ].size(); i++ ) { int m = a[ x ][ i ]; if( color[ m ] == 0 ) { kolejka.push( m ); color[ m ] = 1; rodzic[ m ] = x; odleglosc[ m ] = odleglosc[ x ] + 1; } } color[ x ] = 2; kolejka.pop(); } while( kolejka.size() != 0 ); } int main() { int i, k, x, y; for( i = 0; i < 5; i++ ) { color[ i ] = 0; odleglosc[ i ] = 0; rodzic[ i ] =- 1; } cin >> k; for( i = 0; i < k; i++ ) { cin >> x >> y; x--; y--; a[ x ].push_back( y ); a[ y ].push_back( x ); } BFS( 0 ); for( i = 0; i < 5; i++ ) { cout << "W: " << i + 1 << " ODL " << odleglosc[ i ] << " rodzic " << rodzic[ i ] + 1 << endl; } return 0; }
|
|
pekfos |
» 2011-12-30 20:30:55 jak działa, to dobrze -.- |
|
matoł115 Temat założony przez niniejszego użytkownika |
» 2011-12-30 20:31:23 Czyli dobrze;p |
|
« 1 » |