#include <iostream>
using namespace std;
struct Node {
int data; // Dữ liệu của nút
Node* next; // Con trỏ trỏ đến nút tiếp theo
// Hàm khởi tạo
Node(int value) : data(value), next(nullptr) {}
};
// Hàm chèn một nút mới vào đầu danh sách liên kết
void insertAtHead(Node*& head, int value) {
Node* newNode = new Node(value);
newNode->next = head;
head = newNode;
}
// Hàm hiển thị danh sách liên kết
void printList(Node* head) {
Node* temp = head;
while (temp != nullptr) {
std::cout << temp->data << " -> ";
temp = temp->next;
}
std::cout << "nullptr" << std::endl;
}
// Hàm xóa danh sách liên kết để tránh rò rỉ bộ nhớ
void deleteList(Node*& head) {
while (head != nullptr) {
Node* temp = head;
head = head->next;
delete temp;
}
}
int main()
{
Node* head = nullptr; // Khởi tạo danh sách liên kết rỗng
// Chèn một số phần tử vào danh sách
insertAtHead(head, 3);
insertAtHead(head, 2);
insertAtHead(head, 1);
// Hiển thị danh sách
std::cout << "Danh sách liên kết: ";
printList(head);
// Giải phóng bộ nhớ trước khi kết thúc chương trình
deleteList(head);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzdHJ1Y3QgTm9kZSB7CiAgICBpbnQgZGF0YTsgICAgICAgLy8gROG7ryBsaeG7h3UgY+G7p2EgbsO6dAogICAgTm9kZSogbmV4dDsgICAgIC8vIENvbiB0cuG7jyB0cuG7jyDEkeG6v24gbsO6dCB0aeG6v3AgdGhlbwoKICAgIC8vIEjDoG0ga2jhu59pIHThuqFvCiAgICBOb2RlKGludCB2YWx1ZSkgOiBkYXRhKHZhbHVlKSwgbmV4dChudWxscHRyKSB7fQp9OwoKLy8gSMOgbSBjaMOobiBt4buZdCBuw7p0IG3hu5tpIHbDoG8gxJHhuqd1IGRhbmggc8OhY2ggbGnDqm4ga+G6v3QKdm9pZCBpbnNlcnRBdEhlYWQoTm9kZSomIGhlYWQsIGludCB2YWx1ZSkgewogICAgTm9kZSogbmV3Tm9kZSA9IG5ldyBOb2RlKHZhbHVlKTsKICAgIG5ld05vZGUtPm5leHQgPSBoZWFkOwogICAgaGVhZCA9IG5ld05vZGU7Cn0KCi8vIEjDoG0gaGnhu4NuIHRo4buLIGRhbmggc8OhY2ggbGnDqm4ga+G6v3QKdm9pZCBwcmludExpc3QoTm9kZSogaGVhZCkgewogICAgTm9kZSogdGVtcCA9IGhlYWQ7CiAgICB3aGlsZSAodGVtcCAhPSBudWxscHRyKSB7CiAgICAgICAgc3RkOjpjb3V0IDw8IHRlbXAtPmRhdGEgPDwgIiAtPiAiOwogICAgICAgIHRlbXAgPSB0ZW1wLT5uZXh0OwogICAgfQogICAgc3RkOjpjb3V0IDw8ICJudWxscHRyIiA8PCBzdGQ6OmVuZGw7Cn0KCi8vIEjDoG0geMOzYSBkYW5oIHPDoWNoIGxpw6puIGvhur90IMSR4buDIHRyw6FuaCByw7IgcuG7iSBi4buZIG5o4bubCnZvaWQgZGVsZXRlTGlzdChOb2RlKiYgaGVhZCkgewogICAgd2hpbGUgKGhlYWQgIT0gbnVsbHB0cikgewogICAgICAgIE5vZGUqIHRlbXAgPSBoZWFkOwogICAgICAgIGhlYWQgPSBoZWFkLT5uZXh0OwogICAgICAgIGRlbGV0ZSB0ZW1wOwogICAgfQp9CmludCBtYWluKCkgCnsKTm9kZSogaGVhZCA9IG51bGxwdHI7IC8vIEto4bufaSB04bqhbyBkYW5oIHPDoWNoIGxpw6puIGvhur90IHLhu5duZwoKICAgIC8vIENow6huIG3hu5l0IHPhu5EgcGjhuqduIHThu60gdsOgbyBkYW5oIHPDoWNoCiAgICBpbnNlcnRBdEhlYWQoaGVhZCwgMyk7CiAgICBpbnNlcnRBdEhlYWQoaGVhZCwgMik7CiAgICBpbnNlcnRBdEhlYWQoaGVhZCwgMSk7CgogICAgLy8gSGnhu4NuIHRo4buLIGRhbmggc8OhY2gKICAgIHN0ZDo6Y291dCA8PCAiRGFuaCBzw6FjaCBsacOqbiBr4bq/dDogIjsKICAgIHByaW50TGlzdChoZWFkKTsKCiAgICAvLyBHaeG6o2kgcGjDs25nIGLhu5kgbmjhu5sgdHLGsOG7m2Mga2hpIGvhur90IHRow7pjIGNoxrDGoW5nIHRyw6xuaAogICAgZGVsZXRlTGlzdChoZWFkKTsKCXJldHVybiAwOwp9