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

Wstawienie elementu w liście jednokierunkowej cyklicznej

Ostatnio zmodyfikowano 2017-04-06 18:28
Autor Wiadomość
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..

C/C++
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;
    }
}
P-159880
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
 
P-159883
ultra
Temat założony przez niniejszego użytkownika
» 2017-04-06 18:28:39
Ok, dziękuję bardzo, udało mi się zrobić :)
P-159889
« 1 »
  Strona 1 z 1