Sortowanie listy jednokierunkowej

0

Witam.
mam problem z napisaniem funkcji odpowiedzialnej za sortowanie listy. czytałem o tym dużo na forum i ogólnie na różnych stronach ale nie mam nawet pojęcia jak zacząć pisać takie coś. mam gotową funkcje wczytywania listy (10 elementów z pliku + jeden podany przez użytkownika):

void wczytaj_do_listy(Lranking *&glowa, ifstream &ranking, string imie_gracza, int wynik_gracza){
    int wynik;
    string imie;
    glowa= new Lranking;
    glowa->next=NULL;
    ranking>>imie;
    ranking>>wynik;
    glowa->imie=imie;
    glowa->wynik=wynik;
    Lranking *pom=glowa;
    pom->next=new Lranking;
    pom=pom->next;
    ranking>>imie;
    ranking>>wynik;
    pom->imie=imie;
    pom->wynik=wynik;
    pom->next=NULL;
    glowa->next=pom;
    ranking>>imie;
    ranking>>wynik;
    while(!ranking.eof()){
        pom->next=new Lranking;
        pom=pom->next;
        pom->imie=imie;
        pom->wynik=wynik;
        pom->next=NULL;
        ranking>>imie;
        ranking>>wynik;
}
    pom->next=new Lranking;
    pom=pom->next;
    pom->imie=imie_gracza;
    pom->wynik=wynik_gracza;
    pom->next=NULL;
} 

sama struktura listy wygląda tak:

struct Lranking{
std::string imie;
int wynik;
Lranking *next;
}; 

moze mi ktoś pomóc to zrobić?

0

Szczerze mówiąc Twoj kod wygląda dość przerażająco - dodaj chociażby do tego konstuktora new Lranking jakieś parametry, kod Ci się skróci dwukrotnie co najmniej.

A odnośnie pytania - mergesortem. Tak najłatwiej wydajnie posortować listę, ładny przykład w tarnowie: http://edu.i-lo.tarnow.pl/inf/alg/001_search/0097.php

Edit: w sumie nie najłatwiej, bo najłatwiej by było bąbelkowo.

Edit 2: jest jeszcze opcja oszukiwania (skopiowanie do tablicy, posortowanie, przywrócenia), ale tego rozważać nie będziemy ;P

0

niestety kod jest zrobiony na klasach a tego nie za bardzo potrafię :/

0
msm napisał(a):

Szczerze mówiąc Twoj kod wygląda dość przerażająco - dodaj chociażby do tego konstuktora new Lranking jakieś parametry, kod Ci się skróci dwukrotnie co najmniej.

A odnośnie pytania - mergesortem. Tak najłatwiej wydajnie posortować listę, ładny przykład w tarnowie: http://edu.i-lo.tarnow.pl/inf/alg/001_search/0097.php

Edit: w sumie nie najłatwiej, bo najłatwiej by było bąbelkowo.

Edit 2: jest jeszcze opcja oszukiwania (skopiowanie do tablicy, posortowanie, przywrócenia), ale tego rozważać nie będziemy ;P

a możesz rozwinąć temat bąbelkowego sortowania?

0

A to musi być lista? Nie możesz użyć jakiegoś gotowego rozwiązania? Bo na prawdę jak to zobaczyłem, to się troszeczkę za głowę złapałem.

0

niestety musi ale udało mi się rozwiązać problem. wszystkim dzięki za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1