21xrx.com
2024-09-20 05:33:37 Friday
登录
文章检索 我的文章 写文章
C++实现链表创建
2023-07-13 13:31:01 深夜i     --     --
C++ 链表 创建

链表是一种数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。链表可以用来解决许多问题,比如动态分配内存,排序和查找等。C++语言提供了许多方式来实现链表,本文将介绍一种常用的方法。

首先,我们需要定义一个节点结构体,在结构体中包含数据和指向下一个节点的指针。代码如下:


struct Node {

  int data;

  Node* next;

};

接下来,我们需要编写一个函数来创建链表。我们可以使用指针来表示链表的头节点。初始时,头节点的值为空指针。代码如下:


Node* createLinkedList() {

  Node* head = nullptr;

  return head;

}

接着,我们可以编写一个函数来向链表中添加节点。该函数将接受一个整数作为参数,将其添加到链表中。添加节点后,函数将返回链表的头节点。代码如下:


Node* addNode(Node* head, int data) {

  Node* node = new Node;

  node->data = data;

  node->next = nullptr;

  if (head == nullptr)

    head = node;

   else {

    Node* temp = head;

    while (temp->next != nullptr)

      temp = temp->next;

    

    temp->next = node;

  }

  return head;

}

在该函数中,我们首先创建一个新的节点,然后使用循环找到链表的最后一个节点。最后,我们将新节点添加到链表的末尾。

最后,我们可以编写一个函数来遍历链表,并输出每个节点的值。代码如下:


void printLinkedList(Node* head) {

  Node* temp = head;

  while (temp != nullptr)

    std::cout << temp->data << " ";

    temp = temp->next;

  

  std::cout << std::endl;

}

在该函数中,我们使用while循环来遍历链表,并输出每个节点的值。

完整的实现代码如下:


#include <iostream>

struct Node {

  int data;

  Node* next;

};

Node* createLinkedList() {

  Node* head = nullptr;

  return head;

}

Node* addNode(Node* head, int data) {

  Node* node = new Node;

  node->data = data;

  node->next = nullptr;

  if (head == nullptr)

    head = node;

   else {

    Node* temp = head;

    while (temp->next != nullptr)

      temp = temp->next;

    

    temp->next = node;

  }

  return head;

}

void printLinkedList(Node* head) {

  Node* temp = head;

  while (temp != nullptr)

    std::cout << temp->data << " ";

    temp = temp->next;

  

  std::cout << std::endl;

}

int main() {

  Node* head = createLinkedList();

  head = addNode(head, 1);

  head = addNode(head, 2);

  head = addNode(head, 3);

  printLinkedList(head);

  return 0;

}

在该代码中,我们首先创建了一个空链表。然后,我们通过调用addNode()函数来添加三个节点。最后,我们使用printLinkedList()函数来遍历链表并输出每个节点的值。

总之,C++语言提供了许多方式来实现链表,本文介绍了一种常用的方法。通过使用指针,我们可以创建包含任意数量节点的链表,并对其进行操作。

  
  

评论区

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