فئة الـ Graph
الدرس 3 من 14 في دورة المخططات - سلسلة هياكل البيانات #9 على Coddy.
تعتمد فئة Graph على حقل واحد، vertices، وهو قائمة المجاورة: وهي عبارة عن خريطة (map) تربط كل مفتاح رأس بقائمة جيرانه. كل عملية نضيفها لاحقاً (إضافة الحواف، سرد الجيران، إزالة الحواف) هي مجرد تغيير بسيط لهذه الخريطة.
يبدأ المنشئ (constructor) الرسم البياني في حالته الفارغة: لا رؤوس، ولا حواف. لذا فإن الخريطة هي مجرد خريطة فارغة. والأساليب التي سنضيفها في الدروس القادمة ستعمل على توسيعها.
التحدي
سهلاكتب فئة 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
2مشروع الـ Graph
فئة الـ Graphإضافة رأس (Vertex)إضافة حافة (Edge)هل توجد حافةالحصول على الجيرانحذف حافةالحجم