• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Grafy w C, kolorowanie i dwudzielność.

Aruba Cloud - Virtual Private Server VPS
0 głosów
272 wizyt
pytanie zadane 22 maja 2017 w C i C++ przez niezalogowany

 Mam problem ponieważ nie zdążę napisać, rozwinąć programów więc potrzebuję pomocy.
1. Potrzebuję program kolorujący podany graf algorytmem LF lub SL.
2.Program w którym użytkownik podaje graf i otrzymuje informację, czy podany graf jest dwudzielny, jeżeli tak to
program zwraca podział zbioru wierzchołków na dwa rozłączne podzbiory - partycje dwudzielności.

Chciałem rozwinąć program aby pokazał czy jest cykl eurela, sprawdzał spójność i wypisywał jego drogę ale na DFS utknąłem
 

#include <stdio.h>
 
int read_graph ( int tab[50][50], int n )
{
        int i, j;
        char reply;
 
        for ( i=1 ; i<=n ; i++ )
        {
                for ( j=i ; j<=n ; j++ )
                {
                        if ( i==j )
                        {
                                tab[i][j] = 0;
                                tab[j][i] = 0;
                                continue;
                        }
                        printf("\n Wierzcholki %d & %d maja' krawendz ? (Y/N) :",i,j);
                        while(getchar() != '\n');
                        scanf("%c", &reply);
                        if ( reply == 'y' || reply == 'Y' )
                                {
                                 tab[i][j] = 1;
                                 tab[j][i] = 1;
 
                        if( i == j )
 
                            tab[i][j] = tab[i][j] +1;
                          }
                        else
                                {tab[i][j] = 0;
                                 }
                }
        }
        return 0;
}
 
int main()
{
        int tab[50][50];
        int deg, i, j, n;
        printf("\n Ile wierzcholkow ? : ");
        scanf("%d", &n);
 
        read_graph(tab, n);
        printf("\n Wierzcholek \t Stopien ");
 
        for ( i=1 ; i<=n ; i++ )
        {
                deg = 0;
                for ( j = 1 ; j <= n ; j++ )
                        if ( tab[i][j] == 1)
                                deg++;
                printf("\n\n %5d \t\t %d\n\n", i, deg);
        }
 
 
 
  return 0;
}

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 799 wizyt
pytanie zadane 23 kwietnia 2018 w Python przez KamilLan Nowicjusz (160 p.)
0 głosów
1 odpowiedź 350 wizyt
pytanie zadane 13 listopada 2023 w C i C++ przez kubarozruba111 Nowicjusz (150 p.)
0 głosów
1 odpowiedź 424 wizyt

93,327 zapytań

142,325 odpowiedzi

322,396 komentarzy

62,657 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...