void MeshGraphVertexNode::deleteArc(int lable, MemoryPool<MeshGraphArcNode>& pool){
		if (adjacent->getLable() != lable){
			MeshGraphArcNode *pre = adjacent;
			MeshGraphArcNode *now = pre->getNextNode();
			while (now && now->getLable() != lable){
				pre = now;
				now = now->getNextNode();
			}
			Assert(now != NULL);
			if (now){
				pre->setNextNode(now->getNextNode());
				degree--;
				pool.Dealloc(now);
			}
		}
		else{
			MeshGraphArcNode *deleted = adjacent;
			adjacent = adjacent->getNextNode();
			degree--;
			pool.Dealloc(deleted);
		}
	}