Menu
Coddy logo textTech

הוספה לסוף

שיעור 6 מתוך 14 בקורס רשימה מקושרת דו-כיוונית – סדרת מבני נתונים מס׳ 6 של Coddy.

challenge icon

אתגר

קל

הוסף מתודה addLast למחלקה DoublyLinkedList.

היא מקבלת מספר שלם value ומכניסה צומת חדש הנושא את הערך הזה בסוף הרשימה. הקפד לחבר את הקישור בשני הכיוונים (prev בצומת החדש, next בזנב הישן), ולעדכן את head אם הרשימה הייתה ריקה.

נסו בעצמכם

#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));
        }
        if (strcmp(cmd, "addLast") == 0) {
            char* arg = strtok(NULL, " \t");
            DoublyLinkedList_addLast(&ll, atoi(arg));
        }
    }
    return 0;
}

כל השיעורים ביחידה רשימה מקושרת דו-כיוונית – סדרת מבני נתונים מס׳ 6

תרגלו בעצמכם: קומפיילר C אונליין