... 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 trong danh sách
Xóa node có khoá k
50
Chương 6: Danhsáchliên kết
DSLK...
... 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 ... 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ử trong danhsá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...
...
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. ...
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. ... giữa danh sách
4. LOẠI BỎ MỘT NÚT RA KHỎI DSLK ĐƠN
PROCEDURE DELETE ( L, M )
1
4
3
10
L
12
Bước 1. Tìm đến nút đứng trước M
P
M
q
ngtuananh_vn@yahoo
.com
5
infor Next
Dữ liệu
Trường liên kết...
... n của danh sá ch liê n kế t, và Last
trỏ đế n phầ n tử cuối của danh sá ch liê n kế t.
struct Linked_List;
{ First NODEPTR;
Last NODEPTR;
};
II. Các phép toán trên danhsáchliên kết
: ... TOáN TRÊN CấU TRúC
DANHSáCHLIÊNKếT (LINKED LIST)
I. Khái niệm:
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 ... sá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ê n kế t chưa có...
...
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 ... của
mỗi bản ghi sẽ tăng 100% do phải chứa thêm các con trỏ liênkết trong 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 ghi ...
danh sách để xác nhận sự có mặt của một phần tử hay không không hiệu quả
bằng phương pháp băm như chúng ta đã biết. Đối với bất kỳ một ô nào có trong
Chương 18 – Ứng dụng danhsáchliên kết...
... n của danh sá ch liê n kế t, và Last
trỏ đế n phầ n tử cuối của danh sá ch liê n kế t.
struct Linked_List;
{ First NODEPTR;
Last NODEPTR;
};
II. Các phép toán trên danhsáchliên kết
: ... TOáN TRÊN CấU TRúC
DANHSáCHLIÊNKếT (LINKED LIST)
I. Khái niệm:
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 ... sá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ê n kế t chưa có...
... 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 ... nối (hay liênkết và gọi là danhsáchliên kết) ở dạng
tường minh: mỗi
phần tử ngồi thành phần thơng tin về dữ liệu cịn chứa thêm liênkết (địa chỉ)
đến phần tử kế tiếp trong danh sách. Khi...
... n của danh sá ch liê n kế t, và Last
trỏ đế n phầ n tử cuối của danh sá ch liê n kế t.
struct Linked_List;
{ First NODEPTR;
Last NODEPTR;
};
II. Các phép toán trên danhsáchliên kết
: ... TOáN TRÊN CấU TRúC
DANHSáCHLIÊNKếT (LINKED LIST)
I. Khái niệm:
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 ... Copy_List trê n danh sá ch liê n kế t để tạ o ra một danh sá ch liê n kế t
mới giống danh sá ch liê n kế t cũ.
5. Ghép một danh sá ch liê n kế t có địa chỉ đầ u là First2 và o một danh sá ch liê...
... và
sau nó trong danh sách.
- Danhsáchliênkết vòng: phần tử cuối danhsáchliênkết với phần 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 ... 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ênkết với phần tử đứng sau nó trong danh
sách.
- Danhsáchliênkết đôi/ kép: mỗi phần tử liênkết với ... bằng danhsáchliênkết đơn
CHƯƠNG 1: CƠ SỞ LÝTHUYẾT
1. Tổng quan về danhsáchliên kết
1.1. Định nghĩa
Danh sáchliênkết là danhsách mà các phần tử ( Node) liênkết với nhau nhờ
vào vùng liên...