Danh sách liên kết đơn gồm các node, mỗi node chứa dữ liệu và con trỏ next. Nhiệm vụ: chèn node mới vào đầu danh sách. Ví dụ:
Đầu vào: 1→2→3→4, chèn 5 → Đầu ra: 5→1→2→3→4.
Phương pháp
- Tạo node mới với dữ liệu cho trước.
- Trỏ
nextcủa node mới đến head hiện tại. - Cập nhật head = node mới.
Ví dụ mã nguồn
#include <iostream>
using namespace std;
class Node {
public:
int data;
Node* next;
Node(int d) : data(d), next(nullptr) {}
};
void insertAtHead(Node* &head, int data) {
Node* n = new Node(data);
n->next = head;
head = n;
}
void printList(Node* head) {
while (head) {
cout << head->data << "->";
head = head->next;
}
cout << endl;
}
int main() {
Node* head = nullptr;
insertAtHead(head, 5);
insertAtHead(head, 2);
insertAtHead(head, 8);
insertAtHead(head, 3);
printList(head); // 3->8->2->5->
return 0;
}
Kết quả
3->8->2->5->
Chèn lần lượt 5,2,8,3 vào đầu cho danh sách 3→8→2→5.