Menu
Coddy logo textTech

מחלקת גרף

שיעור 3 מתוך 14 בקורס גרפים – סדרת מבני נתונים מס' 9 של Coddy.

מחלקת Graph בנויה סביב שדה יחיד, vertices, שהיא רשימת שכנויות: מיפוי מכל מפתח של קודקוד לרשימת השכנים שלו. כל פעולה שנוסיף בהמשך (הוספת קשתות, הצגת שכנים, הסרת קשתות) היא רק שינוי קטן במיפוי הזה.

הבנאי מתחיל את הגרף במצב ריק: אין קודקודים ואין קשתות. לכן המיפוי הוא פשוט מיפוי ריק. המתודות שנוסיף בשיעורים הבאים יגדילו אותו.

challenge icon

אתגר

קל

כתוב מחלקה Graph עם בנאי שאינו מקבל קלט.

אתחל שדה יחיד בשם vertices כמפת ריקה (או כמבנה המקביל בשפתך למפת שכנויות ממפתחות לרשימות).

נסו בעצמכם

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "graph.h"

static int _cmp_int(const void* a, const void* b) {
    int ai = *(const int*)a, bi = *(const int*)b;
    return (ai > bi) - (ai < bi);
}

int main() {
    Graph g;
    Graph_init(&g);
    char line[1024];
    while (fgets(line, sizeof(line), stdin)) {
        line[strcspn(line, "\r\n")] = '\0';
        char* cmd = strtok(line, " \t");
        if (!cmd) continue;
        if (strcmp(cmd, "verticesEmpty") == 0) { printf("%s\n", g.vertexCount == 0 ? "true" : "false"); }
    }
    return 0;
}

כל השיעורים ביחידה גרפים – סדרת מבני נתונים מס' 9

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