fork download
  1. #include <iostream>
  2. using namespace std;
  3. struct Node {
  4. int data; // Dữ liệu của nút
  5. Node* next; // Con trỏ trỏ đến nút tiếp theo
  6.  
  7. // Hàm khởi tạo
  8. Node(int value) : data(value), next(nullptr) {}
  9. };
  10.  
  11. // Hàm chèn một nút mới vào đầu danh sách liên kết
  12. void insertAtHead(Node*& head, int value) {
  13. Node* newNode = new Node(value);
  14. newNode->next = head;
  15. head = newNode;
  16. }
  17.  
  18. // Hàm hiển thị danh sách liên kết
  19. void printList(Node* head) {
  20. Node* temp = head;
  21. while (temp != nullptr) {
  22. std::cout << temp->data << " -> ";
  23. temp = temp->next;
  24. }
  25. std::cout << "nullptr" << std::endl;
  26. }
  27.  
  28. // Hàm xóa danh sách liên kết để tránh rò rỉ bộ nhớ
  29. void deleteList(Node*& head) {
  30. while (head != nullptr) {
  31. Node* temp = head;
  32. head = head->next;
  33. delete temp;
  34. }
  35. }
  36. int main()
  37. {
  38. Node* head = nullptr; // Khởi tạo danh sách liên kết rỗng
  39.  
  40. // Chèn một số phần tử vào danh sách
  41. insertAtHead(head, 3);
  42. insertAtHead(head, 2);
  43. insertAtHead(head, 1);
  44.  
  45. // Hiển thị danh sách
  46. std::cout << "Danh sách liên kết: ";
  47. printList(head);
  48.  
  49. // Giải phóng bộ nhớ trước khi kết thúc chương trình
  50. deleteList(head);
  51. return 0;
  52. }
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
Danh sách liên kết: 1 -> 2 -> 3 -> nullptr