21xrx.com
2025-03-28 15:57:16 Friday
文章检索 我的文章 写文章
C++如何定义链表数据结构
2023-07-07 17:40:11 深夜i     --     --
C++ 定义 链表 数据结构

链表是一种常见的数据结构,它由若干个节点构成,每个节点包含一个数据元素和一个指向下一个节点的指针。在C++中,我们可以通过定义一个节点结构体和链表类来实现链表的操作。

首先,定义一个节点结构体,该节点包含两个成员变量:数据元素和指向下一个节点的指针。

struct Node {
  int data;
  Node* next;
};

然后,定义一个链表类,该类包含一个头节点指针和若干个成员函数。

class LinkedList {
private:
  Node* head;
public:
  LinkedList()
    head = nullptr;
  
  ~LinkedList() {
    Node* current = head;
    while(current != nullptr) {
      Node* temp = current;
      current = current->next;
      delete temp;
    }
    head = nullptr;
  }
  void add(int value) {
    Node* newNode = new Node;
    newNode->data = value;
    newNode->next = head;
    head = newNode;
  }
  void remove(int value) {
    Node* current = head;
    Node* prev = nullptr;
    while(current != nullptr) {
      if(current->data == value) {
        if(prev == nullptr)
          head = current->next;
        
        else
          prev->next = current->next;
        
        delete current;
        break;
      }
      else
        prev = current;
        current = current->next;
      
    }
  }
  void display() {
    Node* current = head;
    while(current != nullptr)
      cout << current->data << " ";
      current = current->next;
    
    cout << endl;
  }
};

在链表类的构造函数中,我们将头节点指针设置为nullptr。在析构函数中,我们遍历整个链表,并删除每个节点。

链表类还包含三个成员函数,分别用于添加、删除和显示链表中的节点。在添加节点时,我们创建一个新节点,并将其指针指向链表的头节点。在删除节点时,我们遍历链表,找到要删除的节点,并将其前一个节点的指针指向下一个节点。在显示链表中的节点时,我们遍历整个链表,并将每个节点的数据元素打印出来。

使用上述代码,我们可以在C++中定义一个链表数据结构,并且通过调用链表类中的成员函数,实现添加、删除和显示操作。

  
  

评论区