21xrx.com
2025-04-17 21:27:09 Thursday
文章检索 我的文章 写文章
C++链表插入操作
2023-06-29 11:33:00 深夜i     50     0
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指向新节点即可。

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

  
  

评论区