Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

lista struktur

Ostatnio zmodyfikowano 2015-03-22 21:15
Autor Wiadomość
Sztywny
Temat założony przez niniejszego użytkownika
» 2015-03-22 16:52:07
Dziękuję bardzo :)
Właśnie tego szukałem:
graph[ 1 ].front().kolor = 0;

Tematu proszę na razie nie zamykać. Jeszcze zapewne wypadnie coś nowego.
P-128954
Brunon3
» 2015-03-22 17:37:46
Gdyby jakiś moderator/admin zamknął ten temat i tak byś mógł go otworzyć.

Taka ciekawostka przyrodnicza.

-BD.
P-128957
Sztywny
Temat założony przez niniejszego użytkownika
» 2015-03-22 19:29:35
Jednak ten sposób który wg którego chciałem za-reprezentować graf i procedurę BFS okazał się zupełnie bez sensu.
Może ktoś miał podobny problem do mojego, jeśli tak to zamieszczam kod źródłowy mojego programu:
C/C++
#include <iostream>
#include <list>
#include <queue>

using namespace std;

struct vertex
{
    int kolor;
    int odleglosc;
    int rodzic;
};

int main()
{
    cout << "Ile wierzcholkow w grafie? ";
    int rozmiar;
    cin >> rozmiar;
   
    vertex wierzcholek[ rozmiar + 1 ];
    list < int > graph[ rozmiar + 1 ];
   
    queue < int > kolejka;
   
    cout << "Ile krawędzi: ";
    int m;
    cin >> m;
   
    //przypisywanie polaczen
    for( int i = 1; i <= m; i++ )
    {
        int v1, v2;
        cin >> v1 >> v2;
        graph[ v1 ].push_back( v2 );
        graph[ v2 ].push_back( v1 ); // ta linijka kodu odpowiada za polaczenie wsteczne, czyli graf nieskierowany
    }
   
    //wyswietlanie sasiadow
   
    /*
      for(int i = 1; i <= rozmiar; i++)
      {
        cout << i << ": ";
   
        // ta petla odpowiada za wyswietlanie wierzcholkow docelowych
        // ta petla moze dzialac jako wizualizacja list sasiedztwa
   
          for(list<int>::iterator j = graph[i].begin(); j != graph[i].end(); j++)
            cout << *j << " ";       
   
   
        // ta petla odpowiada za wyswietlanie wierzcholkow wyjsciowych
        // ta petla powinna dzialac osobno (bez pierwszej petli for) dla grafu nieskierowanego
   
          int act;
          act = i;
          for(int w=act; w>=1; w--)
          {
            for(list<int>::iterator j = graph[w].begin(); j != graph[w].end(); j++)
            if(*j == i)
            cout << w << " ";
          }
   
   
        cout << endl;
        }
    */
   
    //PRZESZUKIWANIE WSZERZ
   
    cout << endl << "Podaj zrodlowy wierzcholek: ";
    int root;
    cin >> root;
   
    for( int i = 1; i <= rozmiar; i++ )
         wierzcholek[ i ].kolor = 0; //0 = bialy
   
    wierzcholek[ root ].kolor = 1; //1 = szary
    wierzcholek[ root ].odleglosc = 0;
    wierzcholek[ root ].rodzic = NULL;
   
    kolejka.push( root );
    int obecny;
    while( kolejka.empty() == false )
    {
        obecny = kolejka.front();
        kolejka.pop();
        for( list < int >::iterator j = graph[ obecny ].begin(); j != graph[ obecny ].end(); j++ )
        {
            if( wierzcholek[ * j ].kolor == 0 )
            {
                wierzcholek[ * j ].kolor = 1;
                wierzcholek[ * j ].odleglosc = wierzcholek[ obecny ].odleglosc + 1;
                wierzcholek[ * j ].rodzic = obecny;
                kolejka.push( * j );
            }
            wierzcholek[ obecny ].kolor = 2; //2 = czarny
        }
    }
    cout << endl << endl;
    for( int i = 1; i <= rozmiar; i++ )
         cout << i << ": " << wierzcholek[ i ].odleglosc << endl;
   
   
    return 0;
}
P-128963
Sztywny
Temat założony przez niniejszego użytkownika
» 2015-03-22 20:59:58
Mam jeszcze jedno ważne pytanie, ale nie związane z tematem jaki założyłem. Jako, że już nie chcę zakładać nowego tematu i śmiecić to napisze tutaj.
<< removed - właśnie śmiecisz. >>
P-128975
Brunon3
» 2015-03-22 21:10:52
Takie trochę "dziwne" zachowanie moderatora/admina, usuwać tak bez ostrzeżenia? Dalibyście mu czas na skopiowanie CTRL+C-CTRL+V do innego tematu.
P-128980
pekfos
» 2015-03-22 21:15:03
Kodu z dysku chyba mu to nie skasowało. Jakby się zapoznał z zasadami, to by nie musiał pisać od nowa tych kilku zdań.
P-128981
1 « 2 »
Poprzednia strona Strona 2 z 2