21xrx.com
2024-11-22 10:04:26 Friday
登录
文章检索 我的文章 写文章
使用C++建立链表
2023-07-05 00:06:18 深夜i     --     --
C++ 链表 建立

链表是一种重要的数据结构,在C++中可以用指针来实现。本文将介绍使用C++建立链表的基本操作。

1.定义链表节点

首先,定义链表节点结构体。链表节点包含两个关键的元素:数据和指针。以下示例代码定义了一个包含 int 数据的链表节点结构体。


struct Node {

 int data;

 Node* next;

};

2.创建链表

创建链表需要定义链表的头节点。头节点是一种特殊的节点,用于标识链表的起始位置。以下示例代码创建了一个包含头节点的链表。


Node* head = new Node;

head->data = 0;

head->next = NULL;

该代码创建了一个头节点,数据为0,指针为NULL。该节点没有前驱节点。

3.添加节点

添加节点是链表的核心操作之一。以下示例代码演示了如何在链表末尾添加一个节点。


void appendNode(Node*& head, int value) {

 Node* newNode = new Node;

 newNode->data = value;

 newNode->next = NULL;

 if (head == NULL)

  head = newNode;

  else {

  Node* lastNode = head;

  while (lastNode->next != NULL)

   lastNode = lastNode->next;

  

  lastNode->next = newNode;

 }

}

该函数接收一个指向头节点的指针和一个整数 value,创建一个新的节点存储value,并找到链表的末尾将其添加到链表中。

4.删除节点

删除节点也是链表的核心操作之一。以下示例代码演示了如何通过值删除链表中的一个节点。


void deleteNode(Node*& head, int value) {

 if (head == NULL)

  return;

 

 if (head->data == value) {

  Node* toDeleteNode = head;

  head = head->next;

  delete toDeleteNode;

 } else {

  Node* currentNode = head;

  while (currentNode->next != NULL && currentNode->next->data != value)

   currentNode = currentNode->next;

  

  if (currentNode->next != NULL) {

   Node* toDeleteNode = currentNode->next;

   currentNode->next = toDeleteNode->next;

   delete toDeleteNode;

  }

 }

}

该函数接收一个指向头节点的指针和一个整数 value,从链表中删除值等于value的节点。

5.遍历链表

遍历链表是了解链表中存储的数据的一种有效方式。以下示例代码遍历了链表并输出每个节点的值。


void printList(Node* head) {

 Node* currentNode = head;

 while (currentNode != NULL)

  cout << currentNode->data << endl;

  currentNode = currentNode->next;

 

}

该函数接收一个指向头节点的指针,并遍历链表输出每个节点的值。

总结

本文介绍了使用C++建立链表的基本操作,包括定义节点、创建链表、添加节点、删除节点和遍历链表。链表是一种高效的数据结构,可以用于解决各种问题。如果您对链表感兴趣,请继续学习并尝试实现更复杂的链表操作。

  
  

评论区

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