Пример #1
0
//
// initialization: builds tree, skeleton graphs and cross references
//
void DynamicSPQRTree::init(edge eG)
{
	createSPQR(bcproper(eG));
	rootTreeAt(eG);
	m_sk.init(m_T, nullptr);
	m_skelEdge.init(m_H, nullptr);
	m_mapV.init(m_H, nullptr);
	m_cpV = nullptr;
}
Пример #2
0
SList<node>& DynamicSPQRForest::findPathSPQR (node sH, node tH) const
{
	node vB = bComponent(m_hNode_gNode[sH],m_hNode_gNode[tH]);
	if (!vB) return *OGDF_NEW SList<node>;
	if (!m_bNode_SPQR[vB]) {
		if (m_bNode_hEdges[vB].size()<3) return *OGDF_NEW SList<node>;
		createSPQR(vB);
	}
	node rT;
	SList<node>& pT = findPathSPQR(sH,tH,rT);
	if (pT.empty()) if (rT) pT.pushBack(rT);
	return pT;
}