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 zmien_rozmiar(vector <vector<int> > &lista_sasiedztwa, vector <int> wiersz, int ilosc_wierzcholkow);
- void dodaj_do_listy(vector <vector<int> > &lista_sasiedztwa, int pierwszy_wierzcholek, int drugi_wierzcholek);
- 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;
- int 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);
- cout<<"linia: "<<linia<<endl;
- rozmiar_lini = linia.size()-1;
- switch(id)
- {
- // 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
- case 0:
- {
- for(int i=0; i < rozmiar_lini; i++)
- {
- if(linia[i] == ' ')
- {
- bufor.clear();
- for(int j=0; j < i; j++)
- {
- bufor[j] = linia[j];
- }
- ilosc_wierzchlkow = atoi(bufor.c_str());
- bufor.clear();
- cout<<"ilosc_wierzchlkow: "<<ilosc_wierzchlkow<<endl;
- zmien_rozmiar(lista_sasiedztwa, wiersz, ilosc_wierzchlkow);
- int roboczy = 0;
- for(int j = i+1; j < rozmiar_lini; j++)
- {
- bufor[roboczy] = linia[j];
- roboczy++;
- }
- ilosc_krawedzi = atoi(bufor.c_str());
- cout<<"ilosc_krawedzi: "<<ilosc_krawedzi<<endl;
- }
- }
- }
- break;
- default:
- {
- for(int i=0; i < rozmiar_lini; i++)
- {
- if(linia[i] == ' ')
- {
- bufor.clear();
- for(int j=0; j < i; j++)
- {
- bufor[j] = linia[j];
- }
- pierwszy_wierzcholek = atoi(bufor.c_str());
- cout<<"pierwszy_wierzcholek: "<<pierwszy_wierzcholek<<endl;
- int roboczy = 0;
- for(int j = i + 1; j <= rozmiar_lini; j++)
- {
- bufor[roboczy] = linia[j];
- roboczy ++;
- }
- roboczy = 0;
- drugi_wierzcholek = atoi(bufor.c_str());
- bufor.clear();
- cout<<"drugi_wierzcholek: "<<drugi_wierzcholek<<endl;
- dodaj_do_listy(lista_sasiedztwa, pierwszy_wierzcholek, drugi_wierzcholek);
- }
- }
- }
- break;
- }//koniec switch
- id++;
- } //koniec while
- plik.close();
- przeczytaj_sasiadow(lista_sasiedztwa);
- }// koniec funkcji
- void zmien_rozmiar(vector <vector<int> > &lista_sasiedztwa, vector <int> wiersz, int ilosc_wierzcholkow)
- {
- lista_sasiedztwa.resize(ilosc_wierzcholkow, wiersz);
- }
- void dodaj_do_listy(vector <vector<int> > &lista_sasiedztwa,int pierwszy_wierzcholek, int drugi_wierzcholek)
- {
- lista_sasiedztwa[drugi_wierzcholek].push_back(pierwszy_wierzcholek);
- lista_sasiedztwa[pierwszy_wierzcholek].push_back(drugi_wierzcholek);
- }
- void przeczytaj_sasiadow(vector <vector<int> > lista_sasiedztwa)
- {
- /*for(int i = 0; i <= lista_sasiedztwa.size(); i++)
- {
- for(int j = 0; j <= lista_sasiedztwa[i].size(); j++)
- {
- cout<<lista_sasiedztwa[i][j]<<endl;
- }
- cout<<endl;
- }*/
- cout<<lista_sasiedztwa.size()<<endl;
- cout<<lista_sasiedztwa[1].size()<<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement