wskaźnik listy który jest posortowany, a reszta nie. Na dodatek zawsze ten pierwszy co wpisywany był jest usunięty.. Ten pierwszy po sortowaniu. Prosze o pomoc w funkcji sortowanie.
Kod: Zaznacz cały
struct Dane{
string imie,nazwisko;
Dane *next;
};
void wpisz(Dane *&adres)
{
adres=new Dane;
Dane *glowa,*tmp;
tmp=new Dane;
tmp=adres;
cout<<"Imie i nazwisko "<<endl;
string im,nazw;
cin>>im;
cin>>nazw;
while(im!="koniec" && nazw!="koniec")
{ glowa = new Dane;
adres->imie=im;
adres->nazwisko=nazw;
cout<<"imie i nazwisko, koniec konczy liste"<<endl;
cin>>im;
cin>>nazw;
if((im=="koniec") || (nazw=="koniec"))
{
adres->next=NULL;
adres=tmp;
}
else{
adres->next=glowa;
adres=glowa;
}}
}
void wypisz(Dane *adres)
{
while(adres!=0)
{
cout<<adres->imie<<" "<<adres->nazwisko<<endl;
adres=adres->next;
}
}
void sortowanie(Dane *adres)
{ string nazw,nazw1;
Dane *tmp,*pom;
pom = new Dane;
tmp=new Dane;
*tmp=*adres;
tmp=adres;
nazw=tmp->nazwisko;
Dane *adr=new Dane;
adr=adres;
while(adr!=0)
{
while(adres!=0)
{nazw1=adres->nazwisko;
if(nazw[0]>nazw1[0])
{ *pom=*tmp;
pom=tmp;
*tmp=*adres;
tmp=adres;
*adres=*pom;
adres=pom;
}
adres=adres->next;
}
adr=adr->next;
}}