21xrx.com
2024-12-28 12:59:39 Saturday
登录
文章检索 我的文章 写文章
C++动态链表实现
2023-07-12 20:36:40 深夜i     --     --
C++ 动态链表 实现

C++是一种高级编程语言,是运用广泛的编程语言之一。它的动态链表实现是一种简单但非常实用的数据结构,在许多计算机程序中经常被使用。

链表是一种存储数据的结构,其中的每个数据都有一个指向下一个数据的指针。动态链表是可以随时添加和删除数据的链表,这使得它在某些情况下比静态链表更灵活和更适用。

下面是一种C++动态链表实现的示例代码:


#include <iostream>

using namespace std;

class Node {

public:

  int data;

  Node* next;

};

class LinkedList {

private:

  Node* head;

public:

  LinkedList()

    head = NULL;

  

  ~LinkedList() {

    Node* current = head;

    Node* next;

    while (current != NULL)

      next = current->next;

      delete current;

      current = next;

    

  }

  void addNode(int data) {

    Node* newNode = new Node();

    newNode->data = data;

    newNode->next = head;

    head = newNode;

  }

  void deleteNode(int data) {

    Node* current = head;

    if (current == NULL)

      return;

    if (current->data == data)

      head = current->next;

      delete current;

      return;

    

    while (current->next != NULL) {

      if (current->next->data == data) {

        Node* temp = current->next;

        current->next = temp->next;

        delete temp;

        return;

      }

      current = current->next;

    }

  }

  void display() {

    Node* node = head;

    while (node != NULL)

      cout << node->data << " ";

      node = node->next;

    

    cout << endl;

  }

};

int main() {

  LinkedList* list = new LinkedList();

  list->addNode(1);

  list->addNode(2);

  list->addNode(3);

  list->addNode(4);

  list->deleteNode(3);

  list->display();

  delete list;

  return 0;

}

在这个示例代码中,我们首先定义了一个“Node”类来表示链表中的一个节点。然后定义了一个“LinkedList”类来表示整个链表。

在“LinkedList”类中,我们定义了“head”指针来表示链表的头节点。在构造函数中,我们将头节点设置为NULL。

我们还定义了一个“addNode”函数和一个“deleteNode”函数来添加和删除链表中的节点。添加节点时,我们创建一个新的节点并将其添加到头部。删除节点时,我们遍历整个链表直到找到待删除节点,并将其从链表中移除。

最后我们定义了一个“display”函数来打印当前链表中的所有节点。

在我们的“main”函数中,我们首先创建了一个新的LinkedList实例,并向其中添加四个节点。然后我们调用deleteNode函数将其中一个节点移除,并使用display函数打印最终的链表内容。

需要注意的是,在程序结束前,我们必须调用“delete”操作来释放链表所占用的内存空间。

综上所述,C++的动态链表实现是一种强大的数据结构,可以方便地添加和删除数据,并以此适用于多种场合。通过以上例子,我们可以看到实现动态链表的过程非常简单和易于理解,同时也是C++编程中不可忽视的重要内容。

  
  

评论区

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