21xrx.com
2024-09-19 09:30:46 Thursday
登录
文章检索 我的文章 写文章
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++中定义一个链表数据结构,并且通过调用链表类中的成员函数,实现添加、删除和显示操作。

  
  

评论区

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