Menu
Coddy logo textTech

Graphクラス

Coddyの「グラフ - データ構造シリーズ #9」コースのレッスン 3/14。

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のすべてのレッスン