Я должен использовать обход графа (я думал о BST), чтобы определить, сколько вершин в g находится на расстоянии v меньше или равно N, это путешествие, на котором расстояние равно N ou меньше ребер.
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.
while(1)
и вы прерветесь, когдаlistlen == 0
вы найдете расстояние всех узлов от начального узла. - person Weather Vane   schedule 25.12.2016