...
ngtuananh_vn@yahoo
.com
8
Ví dụ tạo danhsáchliênkếtđơn các
số nguyên
typedef struct Node {
int infor;
Node * next;
};
Node *L;
ngtuananh_vn@yahoo
.com
2
Danh sáchliênkết đơn
ngtuananh_vn@yahoo
.com
35
3. ... một con trỏ
L
Dạng tổng quát dùng 2 con trỏ F và L
F: First L: Last
infor Next
Dữ liệu Trường liênkết
ngtuananh_vn@yahoo
.com
7
ĐỊNH NGHĨA 1 NÚT và KHAI BÁO CONTRỎ L TRỎ ĐẾN ĐẦU
DANH ...
ngtuananh_vn@yahoo
.com
5
infor Next
Dữ liệu
Trường liênkết
L
3
Next
7
Next
8
DANH SÁCHLIÊNKẾT ĐƠN
ngtuananh_vn@yahoo
.com
50
TH2: Xóa nút p ở giữa danh sách
2
F
5
L
3
P
4 NIL
q
1. q->next = p->next
2....
... sau nó trongdanh
sách.
- Danhsáchliênkết đôi/kép: mỗi phần tử liênkết với các phần tử đứng trước và
sau nó trongdanh sách.
- Danhsáchliênkết vòng: phần tử cuối danhsáchliênkết với ... tử đầu danh
sách.
1.3. Danhsáchliênkết đơn.
1.3.1. Khái niệm.
Danh sáchliênkếtđơn là một cấu trúc lưu trữ trong đó các phần tử của danhsách
không cố định, các phần tử trongdanhsách không ... phần liênkết dùng để liênkết tới các node khác.
1.2 .Phân loại.
Tùy cách liênkết giữa các phần tử, danhsáchliênkết gồm có nhiều loại khác
nhau:
- Danhsáchliênkết đơn: mỗi phần tử liên kết...
... 6: Danhsáchliên kết
Giới thiệu - Danhsáchliên kết
11
Danh sáchliênkết vòng : phần tử cuối danhsáchliênkết
với phần tử đầu danh sách:
A B X Z Y
A B C D
Chương 6: Danhsáchliên kết
DSLK ... new_node vào đầu danh sách
38
Chương 6: Danhsáchliên kết
Nội dung
Giới thiệu
Danh sáchliênkếtđơn (Single Linked List)
Danh sáchliênkết đôi (Double Linked List)
Danh sáchliênkết vòng ... Danhsáchliên kết
DSLK đơn – Các thao tác cơ sở
Xóa một node của danh sách
Xóa node đầu danh sách
Xóa node sau node q trongdanh sách
Xóa node có khoá k
50
Chương 6: Danhsáchliên kết
DSLK...
... Danhsáchliênkết (Linked List)
1.Khái niệm: Danhsáchliênkết (linked list) là một cấu trúc dữ liệu bao gồm một nhóm các nút ... thêm hoặc xóa các phần tử trongdanhsách mà không cần phải cấp phát hoặc tổ chức lại trật
tự của mảng.
•
Cấp phát bộ nhớ động
Nhược điểm:
•
Một danhsáchliênkếtđơn giản không cho phép truy ... kiếm có thể phải duyệt tất cả các phần tử.
Phân loại:
•
Danh sách tuyến tính (Linear list):
•
Danh sách vòng (circular list):
•
Danh sáchliênkết đôi (Double list):
Cấu trúc:
Data: Thành phần chứa...
... phép toán trên danhsáchliên kết
:
II.1. Tạo danh sách
:
a. Khởi tạ o danh sá ch
(Initialize): dùng để khởi động một danh sá ch liê n
kế t, cho chương trì nh hiể u là hiệ n tạ i danh sá ch liê ... hơn một nế u là danh sá ch đa liê n
kế t hoặ c danh sá ch liê n kế t kép.
' First là contrỏtrỏ đế n phầ n tử đầ u tiê n của danh sá ch liê n kế t, nó có thể
là kiể u contrỏ (như khai ...
}
II.3. Duyệ t danh sách
: Thông thường ta hay duyệ t danh sá ch liê n kế t để thực
hiệ n một công việ c gì đó, như liệ t kê dữ liệ u trongdanh sá ch hay đế m số nút
trong danh sá ch
void...
...
Hình 18.5 – Danhsáchliênkết gián tiếp.
Chương 18 – Ứng dụng danhsáchliênkết và bảng băm
Giáo trình Cấu trúc dữ liệu và Giải thuật
401
Chương 18 –
ỨNG DỤNG DANHSÁCHLIÊNKẾT VÀ
BẢNG ... thước của
mỗi bản ghi sẽ tăng 100% do phải chứa thêm các contrỏliênkếttrong các danh
sách liên kết. Tuy nhiên, bản thân bảng băm nối kết sẽ có kích thước rất nhỏ mà
vẫn có thể chứa số bản ... thông qua con trỏ. Chúng ta sẽ dùng một List mà mỗi
phần tử chứa contrỏ đến một ô (hình 18.5). Mỗi phần tử của List gồm hai con
trỏ: một chỉ đến một ô đang sống và một chỉ đến phần tử kế trong...
... phép toán trên danhsáchliên kết
:
II.1. Tạo danh sách
:
a. Khởi tạ o danh sá ch
(Initialize): dùng để khởi động một danh sá ch liê n
kế t, cho chương trì nh hiể u là hiệ n tạ i danh sá ch liê ... hơn một nế u là danh sá ch đa liê n
kế t hoặ c danh sá ch liê n kế t kép.
' First là contrỏtrỏ đế n phầ n tử đầ u tiê n của danh sá ch liê n kế t, nó có thể
là kiể u contrỏ (như khai ...
}
II.3. Duyệ t danh sách
: Thông thường ta hay duyệ t danh sá ch liê n kế t để thực
hiệ n một công việ c gì đó, như liệ t kê dữ liệ u trongdanh sá ch hay đế m số nút
trong danh sá ch
void...
... return 1;
}
}
Cấu trúc danhsáchliênkết III.7
III.2. Danhsáchliênkết (DSLK)
III.2.1. Định nghĩa danh sách
Cho kiểu dữ liệu T. Kiểu dữ liệu danhsách TL gồm các phần tử thuộc ... tử: tạo danh sách, duyệt danh sách, tìm một đối tượng
(thỏa một tính chất nào đó) trên danh sách, chèn một đối tượng vào danh sách, hủy
m
ột đối tượng khỏi danh sách, sắp xếp danhsách theo ... DSLK
đơn.
CList.Head CList.Tail
…
Cấu trúc danhsáchliênkết III.8
Sau đây, ta sẽ chủ yếu tập trung khảo sát các kiểu danhsáchliênkết động
được cài đặt bởi con trỏ: DSLK đơn...
... phép toán trên danhsáchliên kết
:
II.1. Tạo danh sách
:
a. Khởi tạ o danh sá ch
(Initialize): dùng để khởi động một danh sá ch liê n
kế t, cho chương trì nh hiể u là hiệ n tạ i danh sá ch liê ... hơn một nế u là danh sá ch đa liê n
kế t hoặ c danh sá ch liê n kế t kép.
' First là contrỏtrỏ đế n phầ n tử đầ u tiê n của danh sá ch liê n kế t, nó có thể
là kiể u contrỏ (như khai ...
}
II.3. Duyệ t danh sách
: Thông thường ta hay duyệ t danh sá ch liê n kế t để thực
hiệ n một công việ c gì đó, như liệ t kê dữ liệ u trongdanh sá ch hay đế m số nút
trong danh sá ch
void...