2012-05-05 3 views
-2

Я хочу найти схему в прямом графике, эта схема начинается с определенной вершины и заканчивается на ней. Я использую структуру данных списка смежности, чтобы создать этот график, но я не мог знать, каким будет алгоритм, пожалуйста, помогите мне. Большое спасибоНайти схему в прямом графике

+1

Пробовали ли вы [погуглить его] (http://www.google.com/#hl=en&output=search&sclient=psy-ab&q=detect+cycles+in+directed+graph&oq= обнаружение + циклов + в + директории & водн = 0 & AQI = g1g-д2 & акл = & gs_l = hp.3.0.0j0i22l2.5304.10257.0.11144.20.12.0.8.8.0.208.1915.0j11j1.12.0 ... 0.0.-eh4kSQJRfQ & = 1 PBX & БАВ = on.2 , or.r_gc.r_pw.r_qf., cf.osb & Fp = d0f8cd49a0fc8cd2 & BIW = 1138 & БиГ = 555)? –

+1

plesae опубликуйте вашу попытку ... –

+0

Вы можете использовать алгоритм Тарьяна. См. Http://stackoverflow.com/questions/261573/best-algorithm-for-detecting-cycles-in-a-directed-graph – spinlok

ответ

1

Может быть, это намек поможет:

  1. траверс граф (любой алго - BFS, DFS)
  2. Цвет узел, который вы посетили и хранить его родитель
  3. чек если узел, который вы проходите, равен , уже покрашен, затем перейдите к своим родителям, пока не получите тот же самый узел .
+0

Большое спасибо –

0
void DFS (Node* ptr , int node , int index , int n) 

{ INT I;

if (ptr == NULL) 
{ 
    ptr=arrNode[index].next; 
    node = ptr->vertex; 
} 

for (int i=0 ; i < n ; i++) 
{ 
    if ((node == arrNode[i].vertex) && (ptr->visit=false)) 
    { 
     ptr=arrNode[i].next; 
     ptr->visit = true; 
     s.push(arrNode[i].vertex); 
    } 
    ptr=ptr->next; 
    DFS(ptr,ptr->vertex,i+1 , n); 

} 

}

+0

Я написал этот код, есть что-то неправильно, я не могу его получить. Моя структура данных представляет собой массив длиной = число вершин, каждое поле этого массива имеет указатель на связанный список, который содержит все его соседи :( –

+0

Это, вероятно, было бы лучше отредактировано в ваш вопрос, чтобы читатели могли видеть вашу текущую работу Я уверен, что как только вы это сделаете, вы получите более положительные отзывы - удачи ':)' – halfer

Смежные вопросы