学校のプロジェクトのフェーズ1(3つのうち)は24時間であるため、結論に達し、コードを適応させるためにこれについて適切に話し合う時間があるわけではありませんが、少なくとも正しい決定をしたかどうかを知る必要があります。
リンクリストを使用しています。構造は次のとおりです。
typedef struct sCity {
int cityID;
char *cityName;
struct sCityLink *links;
struct sCity *next;
} nCity, *City;
typedef struct sCityLink {
City cityLinkParent;
City cityLinkTo;
struct sCityLink *next;
} nCityLink, *CityLink;
基本的に、私にはたくさんの都市があり、それらの都市はグラフのようにすべて一緒にリンクされています。たとえば、A、B、C、D、およびEは、この順序で構造Cityに挿入されます。次に、AをB、CとD、BをC、D、E、CをD、EとDをEに接続します。
ここで、E市に行く必要があるとしましょう。これはリンクリストの最後の都市であり、リンクリストを最後まで通過するには時間がかかります。たぶん、この例では5つの都市ではありませんが、実際のアプリでは、少なくとも10,000の都市のようにサポートすることになっています。ただし、最短ルートはA(開始点)からCからE(またはADEまたはABEの場合もあります)です。
私の構造では、リンクリスト全体を1つずつトラバースすることなく、AからEへの最短ルートを見つけることができますか?そうでない場合、私は何を間違っていますか?
はいの場合、どうすればそれを行うことができますか?どうすればそのような道を見つけることができるのか分かりません...