Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <vector>
- #include <stdlib.h>
- using namespace std;
- void wczytaj_z_pliku();
- void przeczytaj_sasiadow(vector <vector<int> > lista_sasiedztwa);
- int main()
- {
- wczytaj_z_pliku();
- return 0;
- }
- void wczytaj_z_pliku()
- {
- string linia;
- string bufor;
- int ilosc_wierzchlkow;
- int rozmiar_lini;
- int id = 0;
- int ilosc_krawedzi;
- int pierwszy_wierzcholek, drugi_wierzcholek;
- vector <int> wiersz;
- vector <vector<int> > lista_sasiedztwa(1 ,wiersz);
- fstream plik;
- plik.open("plik.txt",ios::in);
- while(plik.eof())
- {
- getline(plik,linia);
- rozmiar_lini = linia.size();
- switch(id)
- {
- case 0:
- // wczytuje liczbe z napisu do spacji i po spacji i odpowiednio rozdzielam wiedzac jakie jest ulozenie liczb w pliku
- // np string = '1245 567'; liczba a = 1245, liczba b = 567
- {
- for(int i=0; i < rozmiar_lini; i++)
- {
- if(linia[i+1] == ' ')
- {
- for(int j=0; j < i+1; j++)
- {
- bufor[j] = linia[j];
- }
- ilosc_wierzchlkow = atoi(bufor.c_str());
- lista_sasiedztwa.resize(ilosc_wierzchlkow, wiersz);
- }
- bufor.clear();
- if(linia[i-1] == ' ')
- {
- for(int j=i; j < rozmiar_lini; j++)
- {
- bufor[j] = linia[j];
- }
- ilosc_krawedzi = atoi(bufor.c_str());
- }
- bufor.clear();
- id++;
- }
- }
- break;
- default:
- {
- for(int i=0; i < rozmiar_lini; i++)
- {
- if(linia[i+1] == ' ')
- {
- for(int j=0; j < i+1; j++)
- {
- bufor[j] = linia[j];
- }
- pierwszy_wierzcholek = atoi(bufor.c_str());
- }
- bufor.clear();
- if(linia[i-1] == ' ')
- {
- for(int j=i; j < rozmiar_lini; j++)
- {
- bufor[j] = linia[j];
- }
- drugi_wierzcholek = atoi(bufor.c_str());
- }
- bufor.clear();
- }
- }
- break;
- lista_sasiedztwa[pierwszy_wierzcholek].push_back(drugi_wierzcholek);
- lista_sasiedztwa[drugi_wierzcholek].push_back(pierwszy_wierzcholek);
- } //koniec switch
- } // koniec while
- plik.close();
- przeczytaj_sasiadow(lista_sasiedztwa);
- }// koniec funkcji
- void przeczytaj_sasiadow(vector <vector<int> > lista_sasiedztwa)
- {
- for(int i = 0; i < lista_sasiedztwa.size(); i++)
- {
- cout<<"Sasiedzi "<< i <<" :"<<endl;
- for(int j = 0; j < lista_sasiedztwa[i].size(); j++)
- {
- cout<<lista_sasiedztwa[i][j]<<endl;
- }
- cout<<endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement