𝗖𝘁𝗿𝘂̛́𝗰 𝘁𝗿𝗶̀𝗻𝗵 𝗱ữ 𝗹𝗶ệ𝘂 𝘁u𝐲𝗲̂́𝗻 𝘁𝗶́𝗻𝗵 𝘁𝗿𝗼𝗻𝗴 𝗙𝗿𝗼𝗻𝘁𝗲𝗻𝗱

Các cấu trúc dữ liệu tuyến tính sắp xếp các phần tử theo một trình tự. Mỗi phần tử có một phần tử đứng trước và một phần tử đứng sau.

Arrays Mảng (Arrays) là công cụ chính trong JavaScript. Chúng sử dụng bộ nhớ liên tục. Điều này cho phép bạn truy cập bất kỳ phần tử nào thông qua chỉ số (index) của nó một cách tức thì.

Lưu ý: Khi một mảng trở nên quá lớn, JavaScript phải cấp phát một khối bộ nhớ lớn hơn và sao chép mọi thứ sang đó. Điều này gây ảnh hưởng đến hiệu năng.

Stacks Ngăn xếp (Stack) tuân theo quy tắc LIFO: Vào sau, Ra trước (Last In, First Out). Hãy tưởng tượng một chồng đĩa. Bạn chỉ có thể thêm hoặc lấy ra từ phía trên cùng.

Queues Hàng đợi (Queue) tuân theo quy tắc FIFO: Vào trước, Ra trước (First In, First Out). Hãy tưởng tượng một hàng người đang đợi tại cửa hàng.

Cảnh báo: Sử dụng shift trên một mảng sẽ rất chậm đối với các tập dữ liệu lớn. Mọi phần tử đều phải dịch chuyển sang trái để lấp đầy khoảng trống. Đối với dữ liệu có khối lượng lớn, hãy sử dụng danh sách liên kết (linked list) để thay thế.

Linked Lists Danh sách liên kết (Linked List) bao gồm các nút (nodes). Mỗi nút chứa dữ liệu và một con trỏ (pointer) trỏ đến nút tiếp theo.

Tóm tắt so sánh:

Mẹo chuyên nghiệp cho JavaScript:

Nguồn: https://dev.to/markyu/frontend-linear-data-structures-deep-dive-arrays-stacks-queues-and-linked-lists-mp2