Пример #1
0
void KCoreGraph::remove_vertex(const int idvert) {
	assert(neighbourhoods.at(idvert) != NULL);
	
	/* Vertex to be removed */
	IntStack *vn = neighbourhoods.at(idvert);
	
	/* Remove the edges between vn and its neighbors */
	int val;
	while (!vn->empty()) {
		val = vn->head();
		neighbourhoods.at(val)->remove(idvert);
		if (((int)(neighbourhoods.at(val)->size)) < k) {
			if (!tbr->contain(val)) tbr->add(val);
		}
		vn->remove(val);
	}
	
	/* Remove vn */
	neighbourhoods.at(idvert) = NULL;
	delete(vn);
};