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; }
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; } } }