iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
自我挑戰組

C++ AI 起步:編程進入智能世界系列 第 21

串列結構:單向串列

  • 分享至 

  • xImage
  •  

串列結構在電腦科學中具有基本且重要的地位。它們提供了一種組織和存儲數據的方式,並能夠有效地進行各種操作。在本文中,我們將重點介紹單向串列 (Singly Linked List) 及其在 C++ 中的實現。

單向串列的基本概念
單向串列是一種線性數據結構,其中每個元素指向下一個元素。每個元素被稱為"節點",它通常包含兩部分:數據和指向下一個節點的指針。

C++中的單向串列實現
以下是一個基礎的單向串列在C++中的實現:

#include <iostream>

class Node {
public:
    int data;
    Node* next;

    Node(int value) : data(value), next(nullptr) {}
};

class SinglyLinkedList {
private:
    Node* head;

public:
    SinglyLinkedList() : head(nullptr) {}

    // 插入節點到串列尾端
    void append(int value) {
        Node* newNode = new Node(value);
        if (!head) {
            head = newNode;
            return;
        }
        Node* current = head;
        while (current->next) {
            current = current->next;
        }
        current->next = newNode;
    }

    // 列印串列中的所有元素
    void printList() const {
        Node* current = head;
        while (current) {
            std::cout << current->data << " -> ";
            current = current->next;
        }
        std::cout << "nullptr" << std::endl;
    }

    // ... 其他方法例如刪除節點、查找節點等 ...
};

int main() {
    SinglyLinkedList sll;
    sll.append(5);
    sll.append(10);
    sll.append(15);
    sll.printList();
    return 0;
}

單向串列的操作
單向串列支持多種操作,例如:

  • 插入:在串列的頭部、尾部或中間插入節點。
  • 刪除:刪除指定的節點。
  • 查找:查找串列中是否包含某個元素。
  • 反轉:反轉整個串列的順序。

這些操作的時間複雜度可能因實現方式而異。

總結
單向串列是一種基本且多用途的數據結構。了解其內部運作和如何在C++中實現它,對於學習其他的數據結構和演算法是非常有幫助的。


上一篇
認識雜湊演算法
下一篇
串列結構:環狀串列
系列文
C++ AI 起步:編程進入智能世界32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言