Edge *BiGraph::getEdge(unsigned int i) { if (i >= edge.size()||i<0||getEdgeSize()==0) return NULL; return &edge.at(i); };
int Graph::rmEdge(Edge const &e) { int epos = getPos(e); if(epos < getEdgeSize()) { vector<Edge *>::iterator iv = _edgeList.begin() + epos; Edge *tmp = *iv; Vertex *v = tmp->getVertex(); Vertex *w = tmp->getOther(*v); v->rmAdjEdge(*tmp); w->rmAdjEdge(*tmp); _edgeList.erase(iv); delete tmp; } return epos; }
void Vertex::print() { std::cout << "id: \t" << id << "; degree: \t" << getEdgeSize() << "; popularity: \t" << popularity; std::cout << std::endl; }