Witam wszystkich. To mój pierwszy post na forum :)
Chciałem napisać program który wczytuję listę słów z pliku i sortuje je alfabetycznie w liście. Niestety nie działa poprawnie, zamienia kolejność tylko niektórych słów. Czy mógłbym prosić o pomoc, wskazanie błędu?
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class wyraz
{
public:
string w;
wyraz * nast;
wyraz * poprz;
};
wyraz * glowa=NULL;
wyraz * ostatni=NULL;
int main(void)
{
wyraz * wsk=NULL;
fstream plik;
plik.open( "slownik.txt", ios::in | ios::out );
if( plik.good() == true )
cout << "Uzyskano dostep do pliku!" << endl;
else
cout << "Dostep do pliku zostal zabroniony!" << endl;
while(!plik.eof())
{
if(glowa==NULL)
{
glowa=wsk=new wyraz;
wsk->poprz=NULL;
}
else
{
wsk->nast=new wyraz;
wsk->nast->poprz=wsk;
wsk=wsk->nast;
}
getline(plik,wsk->w);
wsk->nast=NULL;
}
ostatni=wsk;
/* SORTOWANIE */
for(wsk=glowa; wsk->nast!=NULL ; wsk=wsk->nast)
{
//wsk=glowa;
if(wsk->w > wsk->nast->w)
{
string temp_w;
temp_w=wsk->w;
wsk->w=wsk->nast->w;
wsk->nast->w=temp_w;
}
}
cout << "\n\n Lista posortowana: " << endl;
wsk=glowa;
while(wsk!=NULL)
{
cout << wsk->w << endl;
wsk=wsk->nast;
}
return 0;
}