Wstawienie elementu w liście jednokierunkowej cyklicznej
Ostatnio zmodyfikowano 2017-04-06 18:28
ultra Temat założony przez niniejszego użytkownika |
Wstawienie elementu w liście jednokierunkowej cyklicznej » 2017-04-06 13:57:57 Cześć, potrzebuję pomocy. W jaki sposób mogę wstawić nowy element za jakimś elementem do listy jednokierunkowej cyklicznej? To co napisałem nie wstawia po kolei, a później się gubi.. void wstaw( lista *& head, char value, char value2 ) { lista * n = new lista; lista * p; n->data = value2; int size = ilosc( head ); p = head; for( int i = 0; i < size; i++ ) { if( p->next->data == value ) { n->next = p->next; p->next->next = n; head = n; break; } p = p->next; } } |
|
darko202 |
» 2017-04-06 14:50:47 nie rozumiem co chcesz zrobić ? (tzn. lepiej to opisz)
jeśli - jak myślę - chcesz wstawić element w środek listy to źle to robisz
element1->dane ->element2->dane -><element3>...
chcąc wstawić <nowy element> pomiędzy <element1> i <element2>
1. zapamiętujesz wskaźnik na *<element2> 2. wstawiasz wskaźnik na nowy element <element1>->next = *<nowy element> 3. wstawiasz zapamiętaną dalszą część listy <nowy element>->next = *<element2>
niby to robisz, ale nie można jednej zmiennej zmieniać a później szukać w niej poprzedniej wartości
nie wykonasz np. operacji min<a,b> posługując się dwoma zmiennymi potrzebna jest zmienna pomocnicza c |
|
ultra Temat założony przez niniejszego użytkownika |
» 2017-04-06 18:28:39 Ok, dziękuję bardzo, udało mi się zrobić :) |
|
« 1 » |