Wstawianie elementu na listę powiązaną za pomocą procedury
Ostatnio zmodyfikowano 2016-08-29 10:50
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. #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 ); printf( "%i\n", nNew.next->value ); 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ę. |
|
carlosmay |
» 2016-08-28 21:11:22 Musisz mieć miejsce na dodawany element. Zaalokuj pamięć. |
|
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ą?
|
|
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ęć). |
|
NiNJAxFREEZu Temat założony przez niniejszego użytkownika |
» 2016-08-29 10:50:17 Dziękuję, zamykam. |
|
« 1 » |