Exemple #1
0
    /// <summary>
    /// 在一个节点之后添加一个链表
    /// </summary>
    /// <param name="node">在该节点之后添加</param>
    /// <param name="list">待添加的链表</param>
    public void AddAfter(LLinkedListNode <T> node, LLinkedList <T> list)
    {
        ValidateNode(node); //对列表中的节点进行检查

        LLinkedList <T> tempList = list.Clone();

        if (m_count == 0)
        {
            InsertListToEmptyList(tempList);
        }
        else
        {
            InsertListToListAfter(node, tempList);
        }
    }
    /// <summary>
    /// 进行一次迭代,并将结果存放在FinalList里面
    /// </summary>
    public void NextStep()
    {
        if (m_listFinal == null || m_listFinal.Count == 0)  //第一步
        {
            //m_listAxiom.CopyTo(m_listFinal);
            m_listFinal = m_listAxiom.Clone();  //将公理复制到最终结果链表中
            return;
        }

        //第二步开始
#if _UNMT
        ReplaceFinalList();
#else
        ReplaceFinalListFast();
#endif

        m_iCurrentStep++;
    }