呵呵.单独开个文章,纯属广告啊.不过,内容倒是货真价实的.
Node * IntervalTree :: m_Search (Node * pn) const
{
Node * pMinMin ;
if (pn)
{
if (pn -> left && pn -> left -> maxOfAll >= m_min)
{
pMinMin = m_Search (pn -> left) ;
if (pMinMin)
return pMinMin ;
else if (m_Overlap (pn -> min, pn -> max))
return pn ;
else
return NULL ;
}
else if (m_Overlap (pn -> min, pn -> max))
return pn ;
else
return m_Search (pn -> right) ;
}
else
return NULL ;
}
Node * IntervalTree :: Search (const Item min, const Item max)
{
m_min = min ;
m_max = max ;
return m_Search (m_root) ;
}