...
khác, danhsáchliênkết chia thành các loại khác nhau:
Danh sáchliênkết đơn
Danh sáchliênkết đôi/kép
Danh sách đa liênkết
Danh sáchliênkết vòng (vòng đơn, vòng đôi)
Mỗi loại danh ... nghĩa
Danh sáchliênkết đơn
Danh sáchliênkết kép
Ưu nhược điểm của danhsáchliên kết
1. Danhsách hạn chế
Hàng đợi
Ngăn xếp
Ứng dụng của danhsách hạn chế
BÀI TẬP
29
4.2. Danhsáchliên ... ;
return (Len);
}
27
4.2. Danhsáchliênkếtđơn (SLL)
4.2.1. Cấutrúcdữ liệu
Nội dung mỗi phần tử (nút) trongdanhsáchliênkết gồm 2
vùng Vùng dữliệu và Vùng liên kết
typedef struct SLLNode
{...
...
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ó trongdanh 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ấutrúc ... 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ó trongdanh
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...
... bởi danhsáchliên kết, vòng tròn và có đầu. Đầu của mỗi
hàng có trờng col = 0, còn đầu của mỗi cột có trờng row = 0. Khi đó, cấutrúc
dữ liệu biểu diễn bảng trong hình 6.1 đợc minh hoạ trong ... valuetype
end;
ở đây danhsách có thể đợc cài đặt bởi một trong các cách mà ta đà xét
trong chơng 3. Tức là ta có thể cài đặt bởi danhsách kế cận (dùng mảng) hoặc
danh sáchliên kết. Các phép toán ... sách Change (NextChange) vào danh
sách Change (NextChange) thay cho việc đa chính các tế bào thuộc danhsách
Change(NextChange) vào danhsách Change (NextChange). Nói một cách
khác, danh sách...
... là một danhsách các đối tượng dữ liệu, một
trong hai đầu danhsách được xem là đầu hàng, còn đầu kia là
đuôi hàng. Chẳng hạn, hàng đợi có thể là danhsách các ký tự
(a, b, c, d), trong đó ... xếp, hàng đợi là CTDL tuyến tính. Hàng đợi
là một danhsách các đối tượng, một đầu của danhsách được
xem là đầu hàng đợi, còn đầu kia của danhsách được xem là
đuôi hàng đợi. Với hàng đợi, chúng ... trỏ
ngoài.
(b) Cài đặt hàng đợi bởi DSLK vòng tròn.
Trong mục 5.4, chúng ta đã nghiên cứu cách cài đặt danh
sách bởi DSLK, ở đó KDLTT danhsách đã được cài đặt bởi lớp
LList. Các phép toán hàng...
... THUậT TOáN TRÊN CấUTRúCDANHSáCHLIÊNKếT (LINKED LIST)
I. Khái niệm:
Cấ u trúcdanh 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 ... 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
:
II.1. Tạo danh sách
:
a. Khởi tạ o danh sá ch
(Initialize): ...
}
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...
... THUậT TOáN TRÊN CấUTRúCDANHSáCHLIÊNKếT (LINKED LIST)
I. Khái niệm:
Cấ u trúcdanh 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 ... 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
:
II.1. Tạo danh sách
:
a. Khởi tạ o danh sá ch
(Initialize): ...
}
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ấutrúcdanhsá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ệudanhsách TL gồm các phần tử ... DANHSÁCHLIÊNKẾT
III.1. Giới thiệu kiểu dữliệu con trỏ
III.1.1. So sánh kiểu dữliệu tĩnh và kiểu dữliệu động
Do đặc điểm và hạn chế của các kiểu dữliệu cơ sở và kiểu có cấutrúcđơn ... 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 trongdanh sách. Khi...
... THUậT TOáN TRÊN CấUTRúCDANHSáCHLIÊNKếT (LINKED LIST)
I. Khái niệm:
Cấ u trúcdanh 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 ...
}
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 ... 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
:
II.1. Tạo danh sách
:
a. Khởi tạ o danh sá ch
(Initialize):...
... 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 ... sá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 đơn...