21xrx.com
2024-11-05 14:47:42 Tuesday
登录
文章检索 我的文章 写文章
C++如何定义链表?
2023-07-04 19:22:19 深夜i     --     --
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++中定义链表的基本操作,通过这些基本操作,我们可以很方便地对链表进行增删查改等操作。

  
  

评论区

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