Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

فئة الـ Graph

الدرس 3 من 14 في دورة المخططات - سلسلة هياكل البيانات #9 على Coddy.

تعتمد فئة Graph على حقل واحد، vertices، وهو قائمة المجاورة: وهي عبارة عن خريطة (map) تربط كل مفتاح رأس بقائمة جيرانه. كل عملية نضيفها لاحقاً (إضافة الحواف، سرد الجيران، إزالة الحواف) هي مجرد تغيير بسيط لهذه الخريطة.

يبدأ المنشئ (constructor) الرسم البياني في حالته الفارغة: لا رؤوس، ولا حواف. لذا فإن الخريطة هي مجرد خريطة فارغة. والأساليب التي سنضيفها في الدروس القادمة ستعمل على توسيعها.

challenge icon

التحدي

سهل

اكتب فئة Graph مع constructor لا يأخذ أي مدخلات.

قم بتهيئة حقل واحد 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