21xrx.com
2024-11-25 05:16:31 Monday
登录
文章检索 我的文章 写文章
C++链表插入操作
2023-06-29 11:33:00 深夜i     --     --
C++ 链表 插入操作

链表是一种常见的数据结构,它由许多节点组成,每个节点包含数据和一个指向下一个节点的指针。链表的一个重要操作是插入,它可以在链表的任意位置插入一个新节点。在C++中,我们可以使用指针来实现链表的插入操作。

首先,我们需要定义一个节点结构体,其中包含数据和一个指向下一个节点的指针。代码如下:


struct Node{

  int data;

  Node* next;

};

接下来,我们可以定义一个链表类,其中包含指向链表头节点的指针。代码如下:


class LinkedList{

private:

  Node* head;

public:

  LinkedList()

    head = NULL;

  

  //插入操作

  void insert(int data, int position){

    Node* newNode = new Node;

    newNode->data = data;

    newNode->next = NULL;

    if(position == 1) //插入到链表头部

      newNode->next = head;

      head = newNode;

    

    else{ //插入到链表中间或者尾部

      Node* current = head;

      for(int i = 1; i < position-1 && current != NULL; i++)

        current = current->next;

      

      if(current == NULL)

        cout << "插入位置不合法" << endl;

      

      else

        newNode->next = current->next;

        current->next = newNode;

      

    }

  }

};

在上面的代码中,我们定义了一个insert函数,它接受两个参数:要插入的数据和插入的位置。如果要在链表头部插入新节点,则只需要将新节点的next指向原链表头节点,然后将链表的头指针指向新节点即可。

如果要在链表的中间或者尾部插入新节点,则需要遍历链表,找到插入位置的上一个节点,然后将新节点的next指向上一个节点的next,再将上一个节点的next指向新节点即可。

使用以上代码实现链表的插入操作,可以方便地在链表中插入新节点,并且不会影响原来的链表结构。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复