Advertisement
Guest User

Untitled

a guest
May 6th, 2017
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.41 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <stdlib.h>
  5.  
  6. using namespace std;
  7.  
  8. void wczytaj_z_pliku();
  9. void przeczytaj_sasiadow(vector <vector<int> > lista_sasiedztwa);
  10.  
  11. int main()
  12. {
  13.     wczytaj_z_pliku();
  14.  
  15.     return 0;
  16. }
  17.  
  18. void wczytaj_z_pliku()
  19. {
  20.   string linia;
  21.   string bufor;
  22.  
  23.   int ilosc_wierzchlkow;
  24.   int rozmiar_lini;
  25.   int id = 0;
  26.   int ilosc_krawedzi;
  27.   int pierwszy_wierzcholek, drugi_wierzcholek;
  28.  
  29.   vector <int> wiersz;
  30.   vector <vector<int> > lista_sasiedztwa(1 ,wiersz);
  31.  
  32.   fstream plik;
  33.   plik.open("plik.txt",ios::in);
  34.  
  35.   while(plik.eof())
  36.   {
  37.     getline(plik,linia);
  38.  
  39.     rozmiar_lini = linia.size();
  40.  
  41.         switch(id)
  42.         {
  43.             case 0:
  44. // wczytuje liczbe z napisu do spacji i po spacji i odpowiednio rozdzielam wiedzac jakie jest ulozenie liczb w pliku
  45. // np   string = '1245 567'; liczba a = 1245, liczba b = 567
  46.                 {
  47.                     for(int i=0; i < rozmiar_lini; i++)
  48.                     {
  49.                         if(linia[i+1] == ' ')
  50.                         {
  51.                             for(int j=0; j < i+1; j++)
  52.                             {
  53.                                 bufor[j] = linia[j];
  54.                             }
  55.                                 ilosc_wierzchlkow = atoi(bufor.c_str());
  56.                                 lista_sasiedztwa.resize(ilosc_wierzchlkow, wiersz);
  57.                         }
  58.                         bufor.clear();
  59.                         if(linia[i-1] == ' ')
  60.                         {
  61.                             for(int j=i; j < rozmiar_lini; j++)
  62.                             {
  63.                                 bufor[j] = linia[j];
  64.                             }
  65.                             ilosc_krawedzi = atoi(bufor.c_str());
  66.                         }
  67.                         bufor.clear();
  68.                         id++;
  69.                     }
  70.                 }
  71.             break;
  72.             default:
  73.                 {
  74.                     for(int i=0; i < rozmiar_lini; i++)
  75.                     {
  76.                         if(linia[i+1] == ' ')
  77.                     {
  78.                         for(int j=0; j < i+1; j++)
  79.                         {
  80.                             bufor[j] = linia[j];
  81.                         }
  82.                         pierwszy_wierzcholek = atoi(bufor.c_str());
  83.                     }
  84.                     bufor.clear();
  85.                     if(linia[i-1] == ' ')
  86.                     {
  87.                         for(int j=i; j < rozmiar_lini; j++)
  88.                         {
  89.                             bufor[j] = linia[j];
  90.                         }
  91.                         drugi_wierzcholek = atoi(bufor.c_str());
  92.                     }
  93.                     bufor.clear();
  94.                     }
  95.                 }
  96.             break;
  97.  
  98.             lista_sasiedztwa[pierwszy_wierzcholek].push_back(drugi_wierzcholek);
  99.             lista_sasiedztwa[drugi_wierzcholek].push_back(pierwszy_wierzcholek);
  100.  
  101.   } //koniec switch
  102. } // koniec while
  103. plik.close();
  104. przeczytaj_sasiadow(lista_sasiedztwa);
  105.  
  106. }// koniec funkcji
  107.  
  108. void przeczytaj_sasiadow(vector <vector<int> > lista_sasiedztwa)
  109. {
  110.     for(int i = 0; i < lista_sasiedztwa.size(); i++)
  111.     {
  112.         cout<<"Sasiedzi "<< i <<" :"<<endl;
  113.         for(int j = 0; j < lista_sasiedztwa[i].size(); j++)
  114.         {
  115.             cout<<lista_sasiedztwa[i][j]<<endl;
  116.         }
  117.         cout<<endl;
  118.     }
  119.  
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement