0
g内の頂点の数がv以下でN以下であることをグラフのトラバーサル(私はBSTを考えていた)を使用しなければならないこれは、距離が小さいほど移動距離が短いことである。頂点xの等間隔d以下の頂点の数を求める
int succN (Grafo g, int v, int N)
私はで動作するように、この構造体を持っている:
#define MAX 100
typedef int WEIGHT;
struct edge {
int dest;
WEIGHT weight;
struct edge *next;
};
typedef struct edge Edge;
typedef struct edge *GraphL[MAX];
私はC言語で効率的なソリューションを作るために困難な時期を持っています。唯一の方法は、現在、BSTを使用してaux関数で再帰呼び出しを行うことです。
ダイクストラのアルゴリズムを探索できます。ループ条件によっては、必ずしもすべてのノードにアクセスする必要はなく、ターゲットノードへの最短経路を見つけるか、またはすべてのノードを1回訪問して、最初から最短距離を見つけます。両方の用途が効率的なアルゴリズムを作ります。 –
@WeatherVaneこの特定のケースでは、重みは1です。重み付きグラフではありません。私はまだダイクストラのアルゴリズムを使うことができますか? –
はいできます。 –