21xrx.com
2024-09-20 05:26:36 Friday
登录
文章检索 我的文章 写文章
C++ 单链表程序代码
2023-07-12 05:52:12 深夜i     --     --
C++ 单链表 程序代码

C++是一种常用的编程语言,它有很多重要的特性,其中一个是它对数据结构的支持。在数据结构中,单链表是一种重要的结构,它可以在一个线性表中存放数据元素。

单链表程序代码是一种实现单链表的程序,它可以用来添加、删除、查找某一元素。以下是一个单链表程序代码的例子:


#include <iostream>

using namespace std;

template<typename T>

class LinkedList {

public:

  LinkedList() : head(nullptr), tail(nullptr) {}

  ~LinkedList() {}

  void add(T element) {

    Node<T>* newNode = new Node<T>(element);

    if (head == nullptr)

      head = newNode;

    

    else

      tail->next = newNode;

    

    tail = newNode;

  }

 

  void remove(T element) {

    Node<T>* curNode = head;

    Node<T>* preNode = nullptr;

    while (curNode != nullptr) {

      if (curNode->data == element) {

        if (preNode == nullptr)

          head = curNode->next;

        

        else

          preNode->next = curNode->next;

        

        if (curNode == tail)

          tail = preNode;

        

        delete curNode;

        curNode = nullptr;

        return;

      }

      else

        preNode = curNode;

        curNode = curNode->next;

      

    }

  }

 

  bool search(T element) {

    Node<T>* curNode = head;

    while (curNode != nullptr) {

      if (curNode->data == element)

        return true;

      

      curNode = curNode->next;

    }

    return false;

  }

 

  void print() {

    Node<T>* curNode = head;

    while (curNode != nullptr)

      cout << curNode->data << " ";

      curNode = curNode->next;

    

    cout << endl;

  }

private:

  template<typename T>

  class Node {

  public:

    Node() : next(nullptr) {}

    Node(T data) : data(data), next(nullptr) {}

    ~Node() {}

    T data;

    Node* next;

  };

  Node<T>* head;

  Node<T>* tail;

};

以上代码实现了单链表的几个核心方法,包括添加、删除、查找和打印。其中利用了模板类,可以满足存放各种类型的元素需求。

其中添加方法实现了在单链表的末尾添加一个元素,如果当前链表为空,则头指针指向新节点,否则尾指针指向新节点。

删除方法实现了在单链表中删除一个元素,查找要删除的元素,然后删除它,同时更新头指针和尾指针。如果删除的是唯一一个元素,则头尾指针都为空。

查找方法实现了在单链表中查找一个元素,依次遍历所有节点,如果找到了就返回true,否则为false。

打印方法实现了打印整个单链表的内容,依次遍历所有节点,输出每个节点的数据。

这个单链表代码可以帮助程序员更好地理解单链表这个数据结构,并利用它实现更多功能。

  
  

评论区

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