מחלקת Node
שיעור 3 מתוך 14 בקורס רשימה מקושרת דו-כיוונית – סדרת מבני נתונים מס׳ 6 של Coddy.
אתגר
קלכתבו מחלקה Node עם:
- בנאי שמקבל מספר שלם
value. שמרו אותו כשדה של המחלקה, ואתחלו אתprevואתnextלערךnull(או למקבילה בשפה שלכם). - מתודה
getValueשאינה מקבלת קלט ומחזירה אתvalueהשמור.
נסו בעצמכם
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "node.h"
int main() {
Node* node = NULL;
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, "create") == 0) {
char* arg = strtok(NULL, " \t");
if (arg) node = Node_new(atoi(arg));
}
if (strcmp(cmd, "getValue") == 0) {
printf("%d\n", Node_getValue(node));
}
if (strcmp(cmd, "nextIsNull") == 0) {
printf("%s\n", node->next == NULL ? "true" : "false");
}
if (strcmp(cmd, "prevIsNull") == 0) {
printf("%s\n", node->prev == NULL ? "true" : "false");
}
}
return 0;
}
כל השיעורים ביחידה רשימה מקושרת דו-כיוונית – סדרת מבני נתונים מס׳ 6
2פרויקט רשימה מקושרת כפולה
מחלקת Nodeמחלקת DoublyLinkedListתרגלו בעצמכם: קומפיילר C אונליין