Sortowanie listy jednokierunkowej

0

Witam , mam do was wielką prośbę, mógłby ktoś napisać kod do sortowania listy jednokierunkowej do takiej oto listy.
Możecie mówić że idę na łatwiznę ale jest to dla mnie zbyt trudne. Samo napisanie sortowania bąbelkowego dla listy zajeło mi 3-4h (nie umialem wczesniej list za dobrze) a to już przerasta moje umiejętności. Z góry dzięki.

typedef struct list
{
    struct list *next;
    int val;

}list;
list *begin;
0
  1. Nikt nie wymaga abyś umiał od razu, masz się nauczyć.
  2. Skoro już napisałeś sortowanie to go masz, po kiego ci jeszcze jedno?
  3. Jak chcesz aby odwalono pracę za ciebie to zapraszam do działu ogłoszenia drobne.
0

Mam projekt w którym musze porównać 3 typy sortowania. Wątpie żebym w przyszłości potrzebował trzech ale cóż. To jest prośba , nikogo do tego nie zmuszam.

2

@Adrian112, Może znasz forum na którym można poprosić o remont mieszkania?

4

@_13th_Dragon to jest trochę ciężko początkującemu połapać. @Adrian112 robisz takie sortowanie tak samo jak bąbelkowe tylko, że operujesz na wskaźnikach do węzłów i zamieniasz klucze.

void sort(struct node* root){
    struct node* temp = NULL;
    struct node* help = NULL;

    for(temp = root; temp != NULL; temp = temp->next)
        for(help = temp; help != NULL; help = help->next)
            if(help->key > temp->key){
                int key = help->key;
                help->key = temp->key;
                temp->key = key;
            }
}

Warunek konieczny: podczas definiowania nowego node'a musisz ustawić domyślną wartość struct node* next na NULL. Inaczej pętla nie zadziała, ponieważ wskaźnik next w ostatnim elemencie będzie wskazywał na śmieci.

[EDIT] Widzę, że nie doczytałem posta ale tutaj masz sortowania list z przykładami podane. Może Ci się przyda http://eduinf.waw.pl/inf/alg/001_search/0086.php

0

Dzięki stary ,zaoszczędziłeś mi sporo czasu ;)

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