Danh Sách Liên Kết (Linked List) Là Gì? Các Loại Danh Sách Liên Kết

Bài này sẽ giới thiệu về cấu trúc dữ liệu danh sách liên kết (Linked List). Đây là một trong những cấu trúc dữ liệu kinh điển thường được nhắc đến. Linked List có nhiều loại khác nhau. Hãy cùng nhau tìm hiểu các đặc điểm của từng loại Linked List nào nhé!

1. Danh sách liên kết (Linked List) là gì?

Một danh sách liên kết (Linked List) là một cấu trúc dữ liệu tuyến tính, bao gồm một chuỗi các node kết nối với nhau. Mỗi node có thể xem như một phần tử trong danh sách. Mỗi node sẽ lưu trữ dữ liệu (data) của node đó và địa chỉ (address) của node kế tiếp. Bên dưới là minh họa cấu trúc dữ liệu danh sách liên kết.

Singly linked list

Danh sách liên kết phải có node bắt đầu, được gọi là HEAD. Node cuối cùng được gọi là TAIL. Mỗi node có nhiều nhất 1 phần tử đứng trước cũng như có nhiều nhất 1 phần tử đứng sau.

Có nhiều trường hợp trong thực tế có thể được lưu trữ bằng cách sử dụng Linked List như:

    • Danh sách học sinh
    • Danh mục sách trong thư viện
    • Danh bạ điện thoại
    • Danh sách các nhân viên trong công ty

2. Các loại danh sách liên kết

Có nhiều loại danh sách liên kết như danh sách liên kết đơn (singly linked list), danh sách liên kết kép (doubly linked list), danh sách liên kết vòng (circular linked list).

Danh sách liên kết đơn (singly linked list)

Singly linked list

Mỗi phần tử chỉ liên kết với phần tử đứng sau nó trong danh sách.

Danh sách liên kết kép (doubly linked list)

Doubly linked list

Mỗi phần tử liên kết với phần tử đứng trước và đứng sau nó trong danh sách.

Danh sách liên kết vòng (circular linked list)

Đặc điểm của Circular Linked List là phần tử cuối danh sách liên kết với phần tử đầu danh sách. Có 2 loại danh sách liên kết vòng là:

Danh sách liên kết đơn vòng
Circular linked list
Danh sách liên kết đôi vòng
Linked list đôi vòng

Ở những bài sau, chúng ta sẽ tìm hiểu về cách xây dựng các loại danh sách liên kết cũng như những thao tác cơ bản trên chúng.

  • Session là gì? Sử dụng session trong PHP
  • Kiểu dữ liệu enum trong C++
  • Kiểm tra dữ liệu đầu vào (user input) trong C++
  • Chuyển đổi chuỗi (string) thành mảng (array) với hàm str_split() trong PHP
  • Xử lý dữ liệu JSON trong PHP
4.7/5 - (12 bình chọn)Bài trước và bài sau trong môn học<< Thuật toán sắp xếp Quick SortXây dựng danh sách liên kết đơn với con trỏ (pointer) >>

Từ khóa » Danh Sách Liên Kết Vòng Java