public bool Add(NfaNode n)
{
if (m_node==null)
{ // m_node==null iff m_next==null
m_next = new NList();
m_node = n;
}
else if (m_node.m_state < n.m_state)
{
m_next = new NList(m_node,m_next);
m_node = n;
}
else if (m_node.m_state == n.m_state)
return false; // Add fails, there already
else
return m_next.Add(n);
return true; // was added
}