首页 > 解决方案 > 将元素插入链表 C++

问题描述

给定 EleList 类,我该如何编写 Insert() 函数的实现?我从来没有真正使用过指针,所以这个简单的问题真的让我很难过,如果可能的话,我会很感激相关学习材料的链接。

class EleList
    {
    public:
        EleList( char cData )
        : m_cData(cData)
        , m_Left(0)
        , m_Right(0)
        {
        }
    
        static void Insert( EleList* InsertEle, 
            EleList* InsertPos);
    
    private:
        char m_cData;
        EleList* m_Left;
        EleList* m_Right;
    };
    
    // Insert() function
    void EleList::Insert( EleList* InsertEle, 
            EleList* InsertPos)
    {
    }

标签: c++linked-list

解决方案


一开始,指针似乎有点棘手。我强烈建议您在编写任何代码之前,在涉及数据结构和指针时将您想要实现的算法画在纸上。链表是开始学习它们的好方法。

在实现中,您可以采取多种方法,因为您必须考虑不同的情况:

  • 在列表的开头或空列表中插入:我们创建节点并将左指针与列表的头部交换。
  • 在列表中间插入:我们使用辅助指针迭代列表直到所需位置,我们创建新节点并重定向必要的指针(新节点的指针和相邻节点的指针)。
  • 在列表末尾插入:我们迭代直到最后一个元素,创建新节点并使用指针将它们相互连接。

您可以尝试实施一个,然后从那里尝试另一个。如果你在学习,它不一定是完美的,它必须让你理解指针和数据结构是如何工作的。

我相信您会发现此链接很有用,它非常完整,并且在代码中有大量示例。


推荐阅读