### Quá trình khởi tạo danh sách liên kết trong C++
1. **Định nghĩa cấu trúc nút**: Tạo một cấu trúc (struct) hoặc lớp (class) để đại diện cho từng nút trong danh sách, bao gồm dữ liệu và con trỏ tới nút tiếp theo.
2. **Khởi tạo danh sách**: Tạo một con trỏ để quản lý đầu danh sách (head), ban đầu có thể được đặt là `nullptr`.
3. **Thêm và xóa phần tử**: Viết các hàm để thêm và xóa phần tử từ danh sách.
### Chương trình C++ để thêm và xóa phần tử trong danh sách liên kết
```cpp
#include <iostream>
using namespace std;
// Định nghĩa cấu trúc nút
struct Node {
int data;
Node* next;
};
// Hàm thêm phần tử vào đầu danh sách
void insertAtHead(Node*& head, int value) {
Node* newNode = new Node();
newNode->data = value;
newNode->next = head;
head = newNode;
}
// Hàm xóa phần tử khỏi đầu danh sách
void deleteFromHead(Node*& head) {
if (head == nullptr) return; // Danh sách rỗng
Node* temp = head;
head = head->next;
delete temp; // Giải phóng bộ nhớ
}
// Hàm in danh sách
void printList(Node* head) {
while (head != nullptr) {
cout << head->data << " -> ";
head = head->next;
}
cout << "nullptr" << endl;
}
int main() {
Node* head = nullptr; // Khởi tạo danh sách rỗng
// Thêm phần tử vào danh sách
insertAtHead(head, 10);
insertAtHead(head, 20);
insertAtHead(head, 30);
cout << "Danh sach sau khi them: ";
printList(head);
// Xóa phần tử khỏi danh sách
deleteFromHead(head);
cout << "Danh sach sau khi xoa: ";
printList(head);
return 0;
}
```