21xrx.com
2025-03-28 03:45:48 Friday
文章检索 我的文章 写文章
C++如何定义链表?
2023-07-04 19:22:19 深夜i     9     0
C++ 链表 定义

链表是C++中常用的数据结构之一,它由一个个节点组成,每个节点都包含两个部分,一个是存储数据的部分,另一个是指向下一个节点的指针。

C++中定义链表需要先定义一个节点类,该类包含一个数据成员和一个指向下一个节点的指针成员。节点的定义如下:

class Node{
public:
  int data;
  Node* next;
};

接下来,我们需要定义一个链表类,该类中包含两个私有成员,一个是链表的头指针,另一个是链表的长度。

class LinkedList{
private:
  Node* head;
  int length;
public:
  LinkedList();
  ~LinkedList();
  // 添加节点
  void insertNode(int val);
  // 删除节点
  void deleteNode(int val);
  // 获取长度
  int getLength();
  // 输出链表
  void printList();
};

在链表类中,我们需要实现一些基本的操作,如在链表中插入节点、删除节点和输出链表等。

插入节点的方法实现如下:

void LinkedList::insertNode(int val){
  Node* newNode = new Node();
  newNode->data = val;
  newNode->next = head;
  head = newNode;
  length++;
}

删除节点的方法实现如下:

void LinkedList::deleteNode(int val){
  Node* currentNode = head;
  Node* previousNode = nullptr;
  while (currentNode != nullptr && currentNode->data != val)
    previousNode = currentNode;
    currentNode = currentNode->next;
  
  if (currentNode == nullptr)
    return;
  
  if (previousNode == nullptr)
    head = currentNode->next;
   else
    previousNode->next = currentNode->next;
  
  delete currentNode;
  length--;
}

输出链表的方法实现如下:

void LinkedList::printList(){
  Node* currentNode = head;
  while (currentNode != nullptr)
    cout << currentNode->data << " ";
    currentNode = currentNode->next;
  
  cout << endl;
}

以上就是C++中定义链表的基本操作,通过这些基本操作,我们可以很方便地对链表进行增删查改等操作。

  
  

评论区

请求出错了