示例#1
0
list<PNode *> PGraph::getNeighbors(PNode* observer) {
    int observerIndex = observer->getIndex();
    PEdgeList edgesNeighbors = edges[observerIndex];
    list<PNode *> neighbors;
    for(PEdgeListIterator it = edgesNeighbors.begin(); it != edgesNeighbors.end(); ++it) {
        PEdge * e = *it;
        if (nodes[e->getFromNode()] != observer) {
            neighbors.push_back(nodes[e->getFromNode()]);
        }
        else {
            neighbors.push_back(nodes[e->getToNode()]);
        }    
    }
        
    return neighbors;
}
示例#2
0
void PGraph::showGraph(){
    
    for(int i = 0; i < nodes.size(); i++){
        cout<<nodes[i]->getIndex()<<endl;
        
        for (PEdgeListIterator it = edges[i].begin(); it != edges[i].end(); ++it){
            PEdge * e = *it;
            cout<<" "<<e->getFromNode()<<","<<e->getToNode()<<endl;
        }
        
    }
}