Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Анализ DFS


Автор: mrBaT 1.5.2007, 04:02
привет всем!!

Хочу задать вопрос! Тема: DFS - поиск в глубину на графе. У меня есть алгоритм, но его надо разобрать чтобы реалицовать, из-за неграмотности столкнулся с простой проблемой, непонимания части алгоритма!


итак! 

Код

Algorithm pathDFS(G, v, z)
 setLabel(v, VISITED)
 S.push(v)
  if  vz
   return S.elements()
   for all e Є G.incidentEdges(v)
    if getLabel(e) UNEXPLORED
         w  <- opposite(v,e)
         if getLabel(w) UNEXPLORED
         setLabel(e, DISCOVERY)
         S.push(e)
         pathDFS(G, w, z)
         S.pop(e)
  else
         setLabel(e, BACK)
S.pop(v)



значит, больше всего мне не понятно что делает opposite(v,e) 
pop(e) и push(e) методыи эта запись for all e Є G.incidentEdges(v)
 Это рекурсия конечно, S - это стэк,
v - вершина, VISITED - иследуемая вершина, UNExPLOrED - непосещённая.

Спс за внимание!

Автор: Klin 1.5.2007, 10:30
Цитата(mrBaT @  1.5.2007,  05:02 Найти цитируемый пост)


код C++ Builder

Это у меня с глазами косяк? smile Или там синтаксис другой?

Автор: mrBaT 1.5.2007, 15:29
это псеудокод, надо в с++ реалицовать  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)