Menu
Coddy logo textTech

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.

challenge icon

Görev

Kolay

Girdi 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;
}

Graflar - Veri Yapıları Serisi #9 bölümündeki tüm dersler