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

Wstawianie elementu na listę powiązaną za pomocą procedury

Ostatnio zmodyfikowano 2016-08-29 10:50
Autor Wiadomość
NiNJAxFREEZu
Temat założony przez niniejszego użytkownika
Wstawianie elementu na listę powiązaną za pomocą procedury
» 2016-08-28 20:22:41
Witam, mam napisać funkcję, która wstawi na listę powiązaną nowy element. Funkcja jako parametr pobiera nowy element listy (typu struct entry) oraz wskaźnik elementu listy, po którym ma być wstawiony nowy element. Problem pojawia się w procedurze insertEntry.
C/C++
#include <stdio.h>

struct entry
{
    int value;
    struct entry * next;
};

void insertEntry( struct entry newEntry, struct entry * previous )
{
    * newEntry.next = previous; //????
    * previous = newEntry;
}

int main( void )
{
    struct entry n1, n2, n3, nNew;
   
    n1.value = 100;
    n1.next = & n2;
   
    n2.value = 200;
    n2.next = & n3;
   
    n3.value = 300;
   
    nNew.value = 400;
   
    insertEntry( nNew, n1.next );
    printf( "%i\n", n1.next->value ); // Powinien wyświetlić 400
    printf( "%i\n", nNew.next->value ); // Powinien wyświetlić 200
   
    return 0;
}

Nie mam pojęcia jak "przypisać" polu newEntry.next wartości/adresu wskaźnika previous. Chodzi mi o to, aby pole .next nowego elementu wskazywało na element który poprzednio wskazywał prevoius. Drugie polecenie w procedurze działa bez zarzutów. I tak, wiem że wewnątrz funkcji wskaźnik nie może ulec zmianie, a jedynie wskazywana przez niego wartość, po prostu nie wiem jak to składniowo ogarnąć. Z góry dziękuję.
P-151167
carlosmay
» 2016-08-28 21:11:22
Musisz mieć miejsce na dodawany element. Zaalokuj pamięć.
P-151171
NiNJAxFREEZu
Temat założony przez niniejszego użytkownika
» 2016-08-28 21:52:19
A czy istnieje możliwość wykonania tej operacji (ustawienia wartości wskaźnika next nowego elementu na wartość wskazywaną przez previous) pojedynczą instrukcją?
P-151172
carlosmay
» 2016-08-29 01:22:47
Lista jednokierunkowa - C++
Ten artykuł wydaje się być dość czytelny.
Lista jest w C++, ale zasada jest podobna w C (inaczej alokujesz pamięć).
P-151185
NiNJAxFREEZu
Temat założony przez niniejszego użytkownika
» 2016-08-29 10:50:17
Dziękuję, zamykam.
P-151192
« 1 »
  Strona 1 z 1