Mam problem z sortowaniem listy,
próbowałem napisać funkcję sortującą moją listę. Wzorowałem się na tym kodzie https://www.dropbox.com/s/ldyfrglqbd5t46z/InsertionSortLinkedList.txt?dl=0
Niestety moja funkcja kasuje całą listę i kończy program bez wyrzucania błędów. Bedę starasznie wdzięczy jak ktoś mi powie co robię inaczej niż jest w kodzie z linku.
#include <iostream>
#include <cstdlib>
using namespace std;
struct Lista{
int dane;
Lista *nastepny;
};
void dodaj(Lista *&start){
Lista *p = start;
for(int i=0; i<10; i++){
p=new Lista;
p->dane=rand()%10;
p->nastepny = start;
start = p;
}
}
void sortuj(Lista *&start){
Lista *p = start;
Lista *sort = p;
start = start->nastepny;
while(start!=NULL){
sort=p;
while(sort->nastepny != start){
if(sort->dane > start->dane){
int pom = start->dane;
start->dane = sort->dane;
sort->dane=pom;
} else sort = sort->nastepny;
}
start = start->nastepny;
}
}
void drukuj_liste(Lista *&start){
Lista *p;
p=start;
while(p){
cout << p->dane << " ";
p=p->nastepny;
}
}
void usun(Lista *&start){
Lista *p;
while(start){
p=start;
start = start->nastepny;
delete p;
}
}
int main()
{
Lista *start=NULL;
dodaj(start);
drukuj_liste(start);
cout << endl;
sortuj(start);
drukuj_liste(start);
usun(start);
}