Hey, ich versuch grad selber eine einfache verkettete Liste zu machen und hab jetzt Probleme dabei ein Element der "Liste" hinzuzufügen.
Mein Code:
Meine Überlegungen:
Doch am Ende kommt immer das zuletzt eingefügte Element raus, also egal ob ich list_Elements->next->Wert aufrufe oder list_Elements->next->next->Wert.
Was ist an meinen Überlegungen falsch?
Mein Code:
VB.NET-Quellcode
- struct Daten
- {
- int Wert;
- struct Daten *next;
- };
- typedef struct Daten* PointerDatas;
- typedef struct Daten voidDatas;
- void insert(PointerDatas list_Element,voidDatas pElement);
- int main(int argc, char *argv[]) {
- PointerDatas list_Elements = (PointerDatas)calloc(1,sizeof(voidDatas));
- voidDatas einElement = {1};
- voidDatas zweitesElement = {2};
- voidDatas drittesElement = {3};
- insert(list_Elements,einElement);
- insert(list_Elements,zweitesElement);
- insert(list_Elements,drittesElement);
- printf("%i",list_Elements->next->Wert);
- return 0;
- }
- void insert(PointerDatas list_Element,voidDatas pElement)
- {
- pElement.next = list_Element->next;
- list_Element->next = &pElement;
- }
Meine Überlegungen:
/* Element eins wird hinzugefügt
1. Element -> next = NULL;
list_Element -> next = 1. Element;
Element zwei wird hinzugefügt
2. Element -> next = 1. Element;
list_Element -> next = 2. Element;
Element drei wird hinzugefügt
3. Element -> next = 2. Element;
list_Element -> next = 3. Element;
*/
Doch am Ende kommt immer das zuletzt eingefügte Element raus, also egal ob ich list_Elements->next->Wert aufrufe oder list_Elements->next->next->Wert.
Was ist an meinen Überlegungen falsch?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „RushDen“ ()