21xrx.com
2025-03-31 17:19:51 Monday
文章检索 我的文章 写文章
C++单链表实现代码
2023-06-28 11:35:27 深夜i     8     0
C++ 单链表 实现代码

单链表是一种常见的数据结构,它由若干个节点组成,每个节点包括一个数据元素和一个指向下一个节点的指针。C++是一种面向对象的编程语言,它提供了丰富的数据结构和算法库,可以轻松实现单链表。

以下是一个简单的单链表代码实现:

#include <iostream>
using namespace std;
template<typename T>
struct Node
{
  T data;
  Node<T>* next;
};
template<typename T>
class LinkedList
{
public:
  LinkedList();
  ~LinkedList();
  void append(T data);
  void remove(int index);
  void print();
private:
  Node<T>* head;
  int count;
};
template<typename T>
LinkedList<T>::LinkedList() : head(nullptr), count(0)
template<typename T>
LinkedList<T>::~LinkedList()
{
  Node<T>* current = head;
  while (current)
  {
    Node<T>* next = current->next;
    delete current;
    current = next;
  }
}
template<typename T>
void LinkedList<T>::append(T data)
{
  if (!head)
  {
    head = new Node<T> nullptr;
  }
  else
  {
    Node<T>* current = head;
    while (current->next)
    
      current = current->next;
    
    current->next = new Node<T> nullptr;
  }
  count++;
}
template<typename T>
void LinkedList<T>::remove(int index)
{
  if (index < 0 || index >= count)
  
    return;
  
  Node<T>* current = head;
  Node<T>* previous = nullptr;
  for (int i = 0; i < index; i++)
  
    previous = current;
    current = current->next;
  
  if (previous)
  
    previous->next = current->next;
  
  else
  
    head = current->next;
  
  delete current;
  count--;
}
template<typename T>
void LinkedList<T>::print()
{
  Node<T>* current = head;
  while (current)
  
    cout << current->data << " ";
    current = current->next;
  
  cout << endl;
}
int main()
{
  LinkedList<int> list;
  list.append(1);
  list.append(2);
  list.append(3);
  list.print(); // output: 1 2 3
  list.remove(1);
  list.print(); // output: 1 3
  return 0;
}

以上代码使用了模板类和结构体,可以存储不同类型的数据。在主函数中,我们创建了一个整型链表,并多次调用了其成员方法,包括添加元素、删除元素和打印链表。

可以看到,使用C++实现单链表非常简单,只需定义一个节点结构体和一个链表类,并实现其相关方法即可。这种数据结构对于数据处理和算法实现非常重要,值得我们去深入学习和思考。

  
  

评论区

请求出错了