私は教科書Introduction to Algorithms
別名を読んでいます、私はcで使用アルゴリズムCLRS
を実装したいです、私が知りたいのは、どのグラフ実装を使用すべきか、隣接リストまたは隣接行列ですか?隣接リストを使用するときにソートするのは直感的ではないと思います。隣接リストの表現は、次のように隣接リストを定義するときに混乱します。mst
kruskal
edges
edge
typedef struct tagAdjList
{
int endPointIndex;
struct tagAdjList * next;
}AdjNode, *AdjList, *AdjPNode;
エッジをソートするとき、上で定義されたノードを指すためのポインターの配列を使用したいのですが、問題は、上で定義された構造体がstart point
エッジのを見つけることができないということend point
です。だから私はこのように構造体を変更しました:
typedef struct tagAdjList
{
int startPointIndex;
int endPointIndex;
struct tagAdjList * next;
}AdjNode, *AdjList, *AdjPNode;
私が聞きたいのは、次のように隣接リストを定義しても大丈夫ですか?またはより良い練習がありますか?または、隣接行列を使用する必要があります(インターネットを検索するときに行列を使用してクラスカルを実装する人がいるのを見たので)?なぜ?英語が下手でごめんなさい。どんな助けでもありがたいです。