function ConnectsTo($id, $down, $up) { global $connected, $edge_list, $rvrs_list, $levelsdown, $levelsup; global $prunemode, $node_list; if (!isset($connected[$id])) { $connected[$id] = 1; } if ($down > $levelsdown) { $levelsdown = $down; } if ($up > $levelsup) { $levelsup = $up; } #echo "$id ($down d, $up u) => $levelsdown d $levelsup u<br>\n"; $selfclosed = $node_list[$id]['clsd']; if (isset($edge_list[$id])) { foreach ($edge_list[$id] as $neighbor) { $neighborclosed = $node_list[$neighbor]['clsd']; if (!isset($connected[$neighbor]) && !($prunemode == 1 && $selfclosed && $neighborclosed) && !($prunemode == 2 && $neighborclosed)) { ConnectsTo($neighbor, $down, $up + 1); } } } if (isset($rvrs_list[$id])) { foreach ($rvrs_list[$id] as $neighbor) { $neighborclosed = $node_list[$neighbor]['clsd']; if (!isset($connected[$neighbor]) && !($prunemode == 1 && $selfclosed && $neighborclosed) && !($prunemode == 2 && $neighborclosed)) { ConnectsTo($neighbor, $down + 1, $up); } } } }
function ConnectsTo($id, $down, $up) { global $connected, $edge_list, $rvrs_list, $levelsdown, $levelsup; global $prunemode, $node_list; if (!isset($connected[$id])) { $connected[$id] = 1; } if ($down > $levelsdown) { $levelsdown = $down; } if ($up > $levelsup) { $levelsup = $up; } /* echo '<pre><code>'; echo "$id ($down d, $up u) => $levelsdown d $levelsup u<br>\n"; echo 'nodes:';print_r($node_list); echo 'edges:';print_r($edge_list); echo 'rvrs:';print_r($rvrs_list); echo 'levelsdown:';print_r($levelsdown); echo "\n".'levelsup';print_r($levelsup); echo '<code></pre>'; */ if (empty($node_list)) { return; } if (!isset($node_list[$id])) { return; } $selfclosed = $node_list[$id]['clsd']; if (isset($edge_list[$id])) { foreach ($edge_list[$id] as $neighbor) { $neighborclosed = $node_list[$neighbor]['clsd']; if (!isset($connected[$neighbor]) && !($prunemode == 1 && $selfclosed && $neighborclosed) && !($prunemode == 2 && $neighborclosed)) { ConnectsTo($neighbor, $down, $up + 1); } } } if (isset($rvrs_list[$id])) { foreach ($rvrs_list[$id] as $neighbor) { $neighborclosed = $node_list[$neighbor]['clsd']; if (!isset($connected[$neighbor]) && !($prunemode == 1 && $selfclosed && $neighborclosed) && !($prunemode == 2 && $neighborclosed)) { ConnectsTo($neighbor, $down + 1, $up); } } } }
function ConnectsTo($id, $down, $up, &$connected, &$edge_list, &$rvrs_list, &$levelsdown, &$levelsup, &$prunemode, &$node_list) { if (!isset($connected[$id])) { $connected[$id] = 1; } if ($down > $levelsdown) { $levelsdown = $down; } if ($up > $levelsup) { $levelsup = $up; } $selfclosed = $node_list[$id]['clsd']; if (isset($edge_list[$id])) { foreach ($edge_list[$id] as $neighbor) { $neighborclosed = $node_list[$neighbor]['clsd']; if (!isset($connected[$neighbor]) && !($prunemode == 1 && $selfclosed && $neighborclosed) && !($prunemode == 2 && $neighborclosed)) { ConnectsTo($neighbor, $down, $up + 1, $connected, $edge_list, $rvrs_list, $levelsdown, $levelsup, $prunemode, $node_list); } } } if (isset($rvrs_list[$id])) { foreach ($rvrs_list[$id] as $neighbor) { $neighborclosed = $node_list[$neighbor]['clsd']; if (!isset($connected[$neighbor]) && !($prunemode == 1 && $selfclosed && $neighborclosed) && !($prunemode == 2 && $neighborclosed)) { ConnectsTo($neighbor, $down + 1, $up, $connected, $edge_list, $rvrs_list, $levelsdown, $levelsup, $prunemode, $node_list); } } } }