예제 #1
0
 // Melakukan pencarian dengan node menuju rootNode
 private void _DFSIn(int curr, int target)
 {
     CheckedNode.Add(curr);
     PathNode.Push(curr);
     if (curr == target)
     {
         IsFound = true;
         return;
     }
     if (curr != rootNode)
     {
         _DFSIn(ParentNode[curr], target);
     }
     if (!IsFound)
     {
         PathNode.Pop();
     }
 }
예제 #2
0
 // Melakukan pencarian dengan DFS, node menjauhi rootNode
 private void _DFSOut(int curr, int target)
 {
     CheckedNode.Add(curr);
     PathNode.Push(curr);
     if (curr == target)
     {
         IsFound = true;
         return;
     }
     foreach (int next in ChildNode[curr])
     {
         _DFSOut(next, target);
         if (IsFound)
         {
             return;
         }
     }
     if (!IsFound)
     {
         PathNode.Pop();
     }
 }