串列結構在電腦科學中具有基本且重要的地位。它們提供了一種組織和存儲數據的方式,並能夠有效地進行各種操作。在本文中,我們將重點介紹單向串列 (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++中實現它,對於學習其他的數據結構和演算法是非常有幫助的。