Khái niệm: Danh sách liên kết kép là danh sách liên kết sử dụng 2 con trỏ cho mỗi phần tử, một con trỏ để trỏ đến phần tử tiếp theo trong danh sách, một con trỏ để trỏ đến phần tử liền trước nó trong danh sách.
typedef int DataType; // kiểu dữ liệu dùng trong danh sách
typedef struct Node{
DataType data;// Dùng để chứa dữ liệu kiểu DataType
Node *previos; // Con trỏ trỏ đến ô nhớ liền trước nó;
Node *next; // Con trỏ tới ô
12.6. Double linked List
first last
v v … v NULL
Để quản lý danh sách liên kết kép, thông thường cần:
first là con trỏ chỉ đến phần tử đầu tiên của danh sách liên kết kép;
last là con trỏ chỉ đến phần tử cuối cùng của danh sách liên kết kép;
Thông thường, phần tử cuối có liên kết next trỏ tới NULL;
Bằng cách sử dụng hợp lý liên kết previos hay next, có thể duyệt danh sách theo 2 chiều, về trước hay về sau.
12.6. Double linked List
first last v v … v NULL NULL data - D ữ li u c a nodeệ ủ v next - Con tr đ n ỏ ế node li n sauề previous - Con tr ỏ đ n node li n trế ề ước Node
Khai báo kiểu phần tử của ds liên kết kép trong C:
typedef int DataType; // kiểu dữ liệu dùng trong danh sách
typedef struct Node{ {
DataType data; // Dùng để chứa dữ liệu kiểu DataType;
Node *previous; // Con trỏ tới ô nhớ Node liền trước
Node *next; // Con trỏ tới ô nhớ Node kế tiếp
12.6. Double linked List
first last
v v … v NULL