Graf Sınıfı
Coddy'nin Graflar - Veri Yapıları Serisi #9 kursunda ders 3 / 14.
Graph sınıfı, komşuluk listesi olan tek bir alan, vertices, etrafında oluşturulmuştur: her bir köşe anahtarından komşularının listesine bir eşleme (map). Daha sonra ekleyeceğimiz her işlem (kenar ekleme, komşuları listeleme, kenar çıkarma), bu eşleme üzerinde yapılan küçük bir değişiklikten ibarettir.
Yapıcı metot (constructor), grafı boş durumunda başlatır: köşe yok, kenar yok. Bu nedenle eşleme sadece boş bir eşlemedir. Gelecek derslerde ekleyeceğimiz metotlar onu büyütecektir.
Görev
KolayGirdi almayan bir constructor (yapıcı metot) içeren bir Graph sınıfı yazın.
vertices adında tek bir alanı boş bir map (veya dilinizdeki anahtar-liste eşleşmeli komşuluk haritası karşılığı) olarak başlatın.
Kendin dene
#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;
}