将元素插入链表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)
    {
    }

解决方法

指针一开始似乎有些棘手。我强烈建议您在执行任何代码之前,先画出要实现的算法(涉及数据结构和指针)。链表是开始学习它们的好方法。

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

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

您可以尝试实现一个,然后尝试另一个。如果您正在学习,它不一定是完美的,它必须使您了解指针和数据结构的工作原理。

我相信您会发现this link很有用,它非常完整,并且在代码中包含大量示例。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...