Esempio n. 1
0
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);
            }
        }
    }
}
Esempio n. 2
0
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);
            }
        }
    }
}
Esempio n. 3
0
 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);
             }
         }
     }
 }