Exemplo n.º 1
0
void  przesiewanie(int g, FILE *W,FILE * Z,nazwa_pliku devZ,int *sc,int n)
// dane: plik W o dlugosci g, wyniki: plik Z o dlugosci sc
{
    int i,j,l;
    enum Boolean jest;
    TGraph G1, G2;

    odczytaj_z_pliku(n,W,&G1); // pierwszy graf z W do G1
    zapisz_do_pliku(n,Z, &G1); //przepisanie G1 na plik Z
    fclose(Z);
    j=1;       //aktualna dlugosc pliku Z
    for (i=2; i<= g; i++ ) { // przegladanie pliku W
        odczytaj_z_pliku(n,W,&G1); //kolejny graf z W do G1
        //	Z=fopen(devZ,"r+b");
        Z=fopen(devZ,"rb");
        //porownywanie G1 z kolejnymi G2 z pliku Z
        jest=falsz;
        l=1;
        while ((l <= j)&&  (!jest)) {
            odczytaj_z_pliku(n,Z,&G2);
            if (EqualGraphs(n+1, &G1, &G2))
                jest=prawda;
            else l++;
        }
        if (!jest) { // jesli G1  nie ma w pliku Z, to dopisz
            Z=fopen(devZ,"ab");
            zapisz_do_pliku(n,Z, &G1);
            j++;
            fclose(Z);
        }
        fclose(Z);
    } // i
    *sc=j;          //liczba nieizomorficznych sc grafow w pliku Z
    fclose(W);  //zamkniecie pliku W
// fclose(Z);  //zamkniecie pliku W  */
    *sc=j;
}// przesiewanie
Exemplo n.º 2
0
void konstr(int n,int k, int rep,FILE *W, int *g)
//wynik: plik W o dlugosci g
{
    int i,h,total;
    t1 E;
    TGraph G1,G2;

    init(n, E, &total);               //icjalizacja tablicy E
    i=0;                           // licznik wygenerowanych sc-grafow
    for (h=1; h<=rep; h++) {
        Gnk(k, total, E);           //generacja Gnk
        transEGr(n, k, total, E,& G1);   // transformacja do pola A w G1
        jeden(n, &G1);             // wypelnienie pol Deg i DegSort w G1
        complement(n, &G1, &G2);           //G2.A jest dopelnieniem G1.A
        jeden(n, &G2);              //pola Deg, DegSort w G2
        if (EqualGraphs(n+1, &G1, &G2)) { //sprawdzenie czy G1, G2 sa izomorficzne
            i++;
            zapisz_do_pliku(n,W, &G1) ;
        }
    }
    *g=i;
    fclose(W);
} // konstr
Exemplo n.º 3
0
int main()
{
    int stan;
    instrukcja();
    stan = wybor();

    autowczytywanie();
    while(1)
    {
        switch(stan)
        {
            case 1: wyswietl_liste();
            komunikaty(18);
            break;
            case 2: dodaj_elementy_z_klawiatury();
            komunikaty(18);
            break;
            case 3: wczytaj_z_pliku();
            komunikaty(18);
            break;
            case 4: usun_element();
            komunikaty(18);
            break;
            case 5: usun_wszystkie_elementy();
            komunikaty(18);
            break;
            case 6: zapisz_do_pliku();
            komunikaty(18);
            break;
            case 7: autozapisywanie();
            exit(0);

        }
        stan = wybor();
    }
    return 0;
}