Lập chương trình cho
máy tính
CẤU TRÚC DỮ LIỆU – DANH SÁCH LIÊN
KẾT (LINKED LISTS)
Học kỳ 2, 2004-2005
Lập trình C - CNTT2. 2002 - 2005 209
Khái niệm
Khái niệm: (xem giáo trình Bài giảng kỹ thuật lập trình ...)
Cấu trúc danh sách liên kết là cấu trúc động, việc cấp phát
nút và giải phóng nút trên danh sách xảy ra khi chương trình
đang chạy. Ta thường cấp phát nút cho danh sách liên kết
bằng biến động.
Các phần tử sẽ được cấp phát vùng nhớ trong quá trình thực
thi chương trình, do đó chúng có thể nằm rải rác ở nhiều nơi
khác nhau trong bộ nhớ (phân bố không liên tục).
Lập trình C - CNTT2. 2002 - 2005 210
Biểu diễn trong bộ nhớ
3
1
2
4
First
First
Nil
Lập trình C - CNTT2. 2002 - 2005 211
Liên Kết các nút trong danh
sách
Các phần tử trong danh sách liên kết kết nối với nhau theo
dãy, trong đó:
First là con trỏ chỉ đến phần tử đầu tiên của danh sách liên kết.
Phần tử cuối của danh sách liên kết với vùng liên kết có nội dung
NULL.
Mỗi nút của danh sách có trường info chứa nội dung của nút và
trường next là con trỏ chỉ đến nút kế tiếp trong danh sách.
Lập trình C - CNTT2. 2002 - 2005 212
Các đặc tính
Cấu trúc DSLK là cấu trúc động, các nút được cấp phát hoặc
giải phóng khi chương trình đang chạy.
DSLK rất thích hợp khi thực hiện các phép toán trên danh
sách thường bị biến động. Trong trường hợp xoá hay thêm
phần tử trong DSLK thì ta không dời các phần tử đi như trong
mảng mà chỉ việc hiệu chỉnh lại trường next tại các nút đang
thao tác. Thời gian thực hiện các phép toán thêm vào và loại
bỏ không phụ thuộc và số phần tử của DSLK.