Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sortowanie przez wstawianie (lista)

Ostatnio zmodyfikowano 2013-12-24 02:12
Autor Wiadomość
ShayQ
Temat założony przez niniejszego użytkownika
Sortowanie przez wstawianie (lista)
» 2013-12-23 18:06:18
Witajcie! Mam problem z sortowaniem listy przez wstawianie. Od razu mówię że jestem świeżak jeśli chodzi o listy, bo jeszcze trochę gubię się we wskaźnikach.
Oto kawałek kodu
C/C++
#include <iostream>
using namespace std;

struct list
{
    int war;
    list * next;
};

list * head = NULL;
list * tail = NULL;

void dodaj()
{
    if( tail == NULL )
    {
        int warz;
        list * nowy = new list;
        cin >> warz;
        nowy->war = warz;
        nowy->next = NULL;
        head = nowy;
        tail = nowy;
    }
    else
    {
        int warz;
        cin >> warz;
        list * e;
        for( e = tail; warz <= e->war; e = e->next );
       
        list * nowy = new list;
        nowy->war = warz;
        nowy->next = e->next;
        e->next = nowy;
    }
}

void pokaz()
{
    list * tmp = head;
    while( tmp )
    {
        cout << tmp->war << " ";
        tmp->next;
    }
}

int main()
{
    dodaj();
    dodaj();
    dodaj();
    pokaz();
}

Na szybko machnięte. Wiem że źle jest dodawanie bo gubi mi się łeb gdzieś(nie wiem jak go przypisywać) i potem problem z wyświetleniem. Przejrzałem już dziesiątki przykładów i mimo tego dalej nie potrafię sobie poradzić -.-. jakby ktoś mógł poprawić to wstawianie, aby lista uporządkowana była rosnąco i powiedzieć pokrótce o co kaman to myślę że dalej już bym sobie poradził. Dzięki z góry
P-99969
DejaVu
» 2013-12-23 18:10:50
C/C++
for( e = tail; warz <= e->war; e = e->next );

Ta pętla nie dość, że 'nic' nie robi, to jeszcze  wywali program.
P-99971
ShayQ
Temat założony przez niniejszego użytkownika
» 2013-12-23 18:23:26
ta pętla miała na celu znalezienie elementu przed którym należy wstawić nowy element... dlatego właśnie napisałem na tym forum żeby ktoś pomógł, bo nie potrafię sobie poradzić z sortowaniem w trakcie wstawiania każdego elementu :)
P-99973
pekfos
» 2013-12-23 18:53:36
Nie sprawdzasz, czy e jest poprawne.
P-99978
DejaVu
» 2013-12-23 21:02:50
Dodam jeszcze, że taki temat już istnieje:
http://cpp0x.pl/forum/temat/​?id=13534 :)
P-99993
ShayQ
Temat założony przez niniejszego użytkownika
» 2013-12-24 02:12:41
...po wielu godzinach bawienia się ze wskaźnikami udało mi się zaimplementować to sortowanie :) trochę ifów i przypisań jest ale myślę, że z czasem wykonania tak źle nie będzie... dzięki za pomoc
P-100020
« 1 »
  Strona 1 z 1