addFirst
Lektion 5 von 14 im Kurs Doppelt verkettete Liste - Datenstrukturen-Serie #6 von Coddy.
Aufgabe
EinfachFügen Sie der Klasse DoublyLinkedList eine Methode addFirst hinzu.
Sie erhält einen ganzzahligen value und fügt einen neuen Knoten mit diesem Wert am Anfang der Liste ein. Stellen Sie sicher, dass beide Richtungen der Verknüpfung verbunden werden (prev am alten Head, next am neuen Knoten) und aktualisieren Sie tail, falls die Liste leer war.
Probier es selbst
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "doublylinkedlist.h"
int main() {
DoublyLinkedList ll;
DoublyLinkedList_init(&ll);
char line[256];
while (fgets(line, sizeof(line), stdin)) {
line[strcspn(line, "\r\n")] = '\0';
char* cmd = strtok(line, " \t");
if (!cmd) continue;
if (strcmp(cmd, "state") == 0) printf("%s %s %d\n", ll.head == NULL ? "true" : "false", ll.tail == NULL ? "true" : "false", ll.count);
if (strcmp(cmd, "count") == 0) printf("%d\n", ll.count);
if (strcmp(cmd, "headValue") == 0) printf("%d\n", Node_getValue(ll.head));
if (strcmp(cmd, "tailValue") == 0) printf("%d\n", Node_getValue(ll.tail));
if (strcmp(cmd, "addFirst") == 0) {
char* arg = strtok(NULL, " \t");
DoublyLinkedList_addFirst(&ll, atoi(arg));
}
}
return 0;
}