void GraphNode :: printAdjacentNodes(){ for (int a =0; a< adjacents.size(); a++){ GraphNode * tmp = adjacents.at(a); printf("neighbors %i 'th id is: %i \n", a, tmp->getnodeid()); } }
void Graph :: preprocess(){ //we want all the edges to have pointer to the nodes its connecting //we also want all nodes to know about its adjacency nodes //we will do so by traversing all the edges for (int e=0; e< edgelist.size(); e++) { GraphEdge * thedg = edgelist.at(e); int frid = thedg->from; int toid = thedg->to; bool foundfrom = false; bool foundto = false; GraphNode * fromend; GraphNode * toend; //find these nodes in the adjlist for (int a=0; a<adjlist.size(); a++) { GraphNode * nd = adjlist.at(a); if (!foundfrom && nd->getnodeid() == frid) { fromend = nd; thedg->setFrom(fromend); fromend->addAdjacentEdge(thedg); foundfrom = true; } if (!foundto && nd->getnodeid() == toid) { toend = nd; thedg->setTo(toend); toend->addAdjacentEdge(thedg); foundto = true; } if(foundto && foundfrom){ fromend -> addAdjacentNode(toend); toend->addAdjacentNode(fromend); break; } } } }