21xrx.com
2024-11-05 20:29:47 Tuesday
登录
文章检索 我的文章 写文章
C++链表的创建方法
2023-07-13 09:04:55 深夜i     --     --
C++ 链表 创建方法

C++是一种非常强大的编程语言,支持多种数据结构,其中链表是一种较为常见的数据结构。链表是由一系列节点组成,每个节点都包含一个值和一个指向下一个节点的指针。链表的优点是可以方便地进行插入和删除操作,但是访问元素时的效率相较于数组会稍低一些。

在C++中,创建链表可以通过定义节点类和链表类来实现。下面是链表的创建步骤:

1.定义节点类Node

节点类Node包含一个数据成员(可以是任何数据类型)和一个指向下一个节点的指针成员。下面是一个简单的Node类的定义:


class Node {

public:

  int data;    // 节点数据

  Node* next;   // 指向下一个节点的指针

};

2.定义链表类LinkedList

链表类LinkedList包含指向链表头节点的指针和若干操作函数,例如插入节点、删除节点、遍历节点等操作。下面是一个简单的LinkedList类的定义:


class LinkedList {

private:

  Node* head;   // 指向链表头节点的指针

public:

  LinkedList();  // 构造函数

  ~LinkedList(); // 析构函数

  void insertNode(int value);   // 插入节点

  void deleteNode(int target);  // 删除节点

  void traverse();        // 遍历链表节点

};

3.实现链表操作函数

在链表类LinkedList中实现插入节点、删除节点和遍历节点等操作函数。


// 构造函数

LinkedList::LinkedList()

  head = NULL;

// 析构函数

LinkedList::~LinkedList() {

  Node* current = head;

  while (current != NULL) {

    Node* temp = current->next;

    delete current;

    current = temp;

  }

}

// 插入节点

void LinkedList::insertNode(int value) {

  Node* newNode = new Node();

  newNode->data = value;

  newNode->next = head;

  head = newNode;

}

// 删除节点

void LinkedList::deleteNode(int target) {

  Node* current = head;

  Node* prev = NULL;

  // 找到要删除的节点

  while (current != NULL && current->data != target)

    prev = current;

    current = current->next;

  

  // 如果找到了目标节点,删除它

  if (current != NULL) {

    // 如果要删除的是头节点

    if (current == head)

      head = current->next;

     else

      prev->next = current->next;

    

    delete current;

  }

}

// 遍历链表节点

void LinkedList::traverse() {

  Node* current = head;

  while (current != NULL)

    cout << current->data << " ";

    current = current->next;

  

  cout << endl;

}

4.测试链表

可以在主函数中测试链表的各种操作函数,例如:


int main() {

  LinkedList* list = new LinkedList();

  list->insertNode(1);

  list->insertNode(2);

  list->insertNode(3);

  list->insertNode(4);

  list->traverse();  // 输出: 4 3 2 1

  list->deleteNode(2);

  list->traverse();  // 输出: 4 3 1

  delete list;

  return 0;

}

以上就是C++中创建链表的方法。通过定义节点类和链表类以及实现相应的操作函数,可以很方便地对链表进行插入、删除和遍历等操作。链表作为一种常见的数据结构,对于C++程序员来说是必不可少的。

  
  

评论区

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