Насколько я могу сказать решения, данные Ryan Fox ( 58343 , христианин ( 58444 ), и Вы ( 58461 ) почти так же хороши, как это добирается. Я не полагаю, что обход в ширину помогает в этом случае, поскольку Вы не получите все пути. Например, с краями (A,B)
, (A,C)
, (B,C)
, (B,D)
и (C,D)
Вы получите пути ABD
и ACD
, но не ABCD
.
Вам просто нужно украсить метод и содержащий класс с помощью ExtensionAttribute :
using namespace System::Runtime::CompilerServices;
...
[ExtensionAttribute]
public ref class MyExtensions abstract sealed {
public:
[ExtensionAttribute]
static ReturnType MyExt(ExtType ^ext) {
...
}
};