Sortowanie przez wstawianie (lista)
Ostatnio zmodyfikowano 2013-12-24 02:12
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 #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 |
|
DejaVu |
» 2013-12-23 18:10:50 for( e = tail; warz <= e->war; e = e->next );
Ta pętla nie dość, że 'nic' nie robi, to jeszcze wywali program.
|
|
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 :) |
|
pekfos |
» 2013-12-23 18:53:36 Nie sprawdzasz, czy e jest poprawne. |
|
DejaVu |
» 2013-12-23 21:02:50 |
|
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 |
|
« 1 » |