將單鏈表尾節點的指針從空指針改為指向頭節點,便形成了一個首尾相連的環狀結構,這就是單循環鏈表(簡稱循環鏈表)。這種結構消除了線性表的邊界限制,使得從任一節點出發都能遍歷整個鏈表,極大地簡化了循環遍歷與周期性操作的邏輯。
以下通過完整的 C++ 代碼示例,展示循環鏈表的創建、節點插入、節點刪除、鏈表逆序以及數據顯示等核心操作。每步均附帶詳細註解與運行時內存圖解,幫助你直觀理解指針變化。
編譯運行後,控制台將輸出各操作步驟的鏈表狀態,驗證邏輯正確性:
struct Node {
int data;
Node* next;
Node(int val) : data(val), next(nullptr) {}
};
class CircularList {
Node* head;
public:
CircularList() : head(nullptr) {}
void create(int arr[], int n);
void insert(int pos, int val);
void remove(int pos);
void reverse();
void display();
};
提示:實際項目中建議封裝迭代器,並處理異常情況(如空鏈表操作、越界插入等),以提高代碼健壯性。