Tổ chức danh sách liên kết

Một phần của tài liệu Cấu trúc dữ liệu và thuật giải doc (Trang 76 - 77)

Mối liên hệ giữa các phần tửđược thể hiện ngầm

- Mỗi phần tử trong danh sách được đặc trưng bởi một chỉ số, cặp phần tử xi, xi+1

được xác định là kế cận trong danh sách nhờ vào quan hệ của cặp chỉ số I và i+1. Các phần tử trong danh sách buộc phải lưu trữ liên tiếp trong bộ nhớ để có thể xây dựng công thức xác định địa chỉ của phần tử thứ i: address(i) = address(1) + (i- 1)*sizeof(T).

- Có thể xem mảng và tập tin là những danh sách đặc biệt được tổ chức theo hình thức liên kết “ngầm” giữa các phần tử.

- Với cách tổ chức này có ưu điểm là cho phép truy xuất ngẫu nhiên, đơn giản và nhanh chóng đến một phần tử bất kỳ trong danh sách. Tuy nhiên hạn chế của nó là hạn chề về mặt sử dụng bộ nhớ.

- Đối với mảng, số phần tửđược xác định trong thời gian biên địch và cần cấp phát bộ

nhớ liên tục. Trong trường hợp kích thước bộ nhớ trống còn đủ để chứa toàn bộ

mảng nhưng các ô nhớ trống lại không nằm kế cận nhau thì cũng không cấp phát vùng nhớ cho mảng được. Ngoài ra do kích thước mảng cố định mà số phần tử của

danh sách lại khó dự trù chính xác nên có thể gây ra tình trạng thiếu hụt hay lãng phí bộ nhớ. Các thao tác thêm hủy các phân tử thục hiện không tự nhiên.

Mối liên hệ giữa các phần tửđược thể hiện tường minh

- Mỗi phần tử ngoài thông tin về bản thân còn chứa một liên kết (địa chỉ) đến phần tử

kế trong danh sách nên còn được gọi là danh sách móc nối (liên kết).

- Do liên kết tường minh nên các phần tử trong danh sách không cần phải lưu trữ kế

cận trong bộ nhớ. Nhờ đó khắc phục được các khuyết điểm của hình thức tổ chức mảng. Tuy nhiên việc truy xuất đòi hỏi phải thực hiện truy xuất thông qua một số

phần tử khác.

- Có nhiều kiểu tổ chức liên kết giữa các phần tử trong danh sách như: danh sách liên kết đơn, danh sách liên kết kép, vòng,…

Một phần của tài liệu Cấu trúc dữ liệu và thuật giải doc (Trang 76 - 77)