Читал несколько алгоритмов, но проблема в том, что у меня граф задан списком ребер. Все ребра хранятся в массиве структур
|
Код:
|
struct edge
{
int begin;
int weight;
int end;
}; |
Красит вершины массив paint[i]. (2 - пройдена, 1 - окрашена, 0 - не покрашена).
у меня было вот так, но это неверно
|
Код:
|
for ( p = 0; p < l; p++ )
{
if (((krus[i2].begin == krus[p].begin) || (krus[i2].begin == krus[p].end) || (krus[i2].end == krus[p].end)
|| (krus[i2].begin == krus[p].begin)))
{
if (paint[p] == 2)
{
s2[p]++;
};
if ((paint[p] == 0) || (paint[p] == 1))
{
paint[p] = 1;
};
};
};
paint[i2] = 2;
}; |
Массив s2[i] считает сколько раз обработанная вершина встретилась при покраске смежных вершин. Но в таком случае не получается четко по s2[i] задать условия цикла.
Помогите пожалуйста, курсач горит, как и ,пожалуй, мой мозг.