SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Bài 7:
DANH SÁCH LIÊN KẾT (LINKED LIST)
VÀ TẬP HỢP (SET)
Nhắc lại bài cũ
Slide 7 – Danh sách liên kết và Tập hợp 2
Tìm hiểu 3 cấu trúc dữ liệu đặc biệt: Ngăn xếp (Stack),
Hàng đợi (Queue) và Cây (Tree):
Khái niệm
Cách cài đặt trong VB.Net
Các thao tác cơ bản trên các cấu trúc dữ liệu
Mục tiêu bài học hôm nay
Slide 7 – Danh sách liên kết và Tập hợp 3
Tìm hiểu về danh sách liên kết (Linked List):
Khái niệm danh sách liên kết
Các thao tác trên danh sách liên kết
Tìm hiểu về Set (tập hợp):
Định nghĩa Set
Các đặc trưng
Cách cài đặt Set bằng VB.Net
Khái niệm Danh sách liên kết
Slide 7 – Danh sách liên kết và Tập hợp 4
Mảng là một hình thức liên kết ngầm:
Các phần tử trong mảng truyền thống được cấp phát vùng nhớ
một cách liên tiếp nhau
Khái niệm danh sách liên kết
Slide 7 – Danh sách liên kết và Tập hợp 5
Danh sách liên kết cũng gồm nhiều phần tử như mảng, nhưng có sự
khác biệt cơ bản là các phần tử không nằm liên tiếp nhau trong bộ
nhớ, mà dùng liên kết để móc nối với nhau.
Có nhiều loại danh sách liên kết:
Danh sách liên kết đơn
Danh sách liên kết kép
Danh sách liên kết vòng
…
Trong bài này ta tìm hiểu kĩ về danh sách liên kết đơn
Khái niệm Danh sách liên kết
Slide 7 – Danh sách liên kết và Tập hợp 6
Hình mô tả 4 kiểu danh sách liên kết
Đơn
Đôi
Vòng
Vòng
đôi
Khái niệm danh sách liên kết
Slide 7 – Danh sách liên kết và Tập hợp 7
Danh sách liên kết đơn là danh sách gồm nhiều nút móc nối với nhau.
Mỗi nút gồm:
Trường dữ liệu lưu trữ các giá trị của nút.
Trường lưu trữ liên kết
Danh sách liên kết đơn cần có một con trỏ đầu danh sách (head) trỏ
đến nút đầu tiên, các nút còn lại trỏ tuần tự đến nút kế tiếp và một liên
kết rỗng (null) ở nút cuối cùng (không trỏ đến đâu).
Con trỏ đầu
danh sách
Liên kết rỗng
cuối danh sách
Vùng dữ
liệu
Vùng liên
kết
Khái niệm Danh sách liên kết
Slide 7 – Danh sách liên kết và Tập hợp 8
Ví dụ:
Khái niệm Danh sách liên kết
Slide 7 – Danh sách liên kết và Tập hợp 9
Ví dụ: dùng danh sách biểu diễn đa thức và tính tổng hai
đa thức
Các thao tác trên Danh sách liên kết
Slide 7 – Danh sách liên kết và Tập hợp 10
Tạo danh sách
Khai báo và khởi tạo danh sách liên kết
Thêm phần tử:
Thêm vào đầu/cuối danh sách hoặc vào sau một phần tử cho trước
Tìm kiếm phần tử trong danh sách:
Tìm kiếm phần tử có giá trị cho trước
Tìm kiếm phần tử đứng trước phần tử cho trước
Xóa bỏ phần tử trong danh sách:
Xóa phần tử đầu/cuối danh sách
Hiển thị nội dung của toàn bộ danh sách
Tạo danh sách liên kết
Slide 7 – Danh sách liên kết và Tập hợp 11
Dùng lớp Node để tạo danh sách liên kết trong VB.Net: mỗi nút của
danh sách gồm 2 trường
Trường Element lưu trữ thông tin của nút
Trường Link lưu trữ liên kết đến nút kế tiếp
Khai báo và hàm tạo:
Public Class Node
Public Element As Object
Public Link As Node
Public Sub New()
Element = Nothing
Link = Nothing
End Sub
Public Sub New(ByVal theElement As Object)
Element = theElement
Link = Nothing
End Sub
Tìm kiếm phần tử trong Danh sách
Slide 7 – Danh sách liên kết và Tập hợp 12
Thao tác tìm kiếm một phần tử trong danh sách:
Private Function Find(ByVal item As Object) As Node
Dim current As New Node()
current = header
While (current.Element <> item)
current = current.Link
End While
Return current
End Function
Tìm kiếm phần tử trong Danh sách
Slide 7 – Danh sách liên kết và Tập hợp 13
Tìm kiếm một phần tử trước một phần tử khác trong
danh sách:
Private Function FindPrevious(ByVal x As Object) As Node
Dim current As Node = header
While (Not (current.Link Is Nothing) And _
current.Link.element <> x)
current = current.Link
End While
Return current
End Function
Thêm phần tử vào Danh sách
Slide 7 – Danh sách liên kết và Tập hợp 14
Public Sub Insert(ByVal newItem As Object, ByVal after
As Object)
Dim current As New Node()
Dim newnode As New Node(newItem)
current = Find(after)
newnode.Link = current.Link
current.Link = newnode
End Sub
Xóa phần tử trong Danh sách
Slide 7 – Danh sách liên kết và Tập hợp 15
Thao tác xóa một phần tử:
Public Sub Remove(ByVal x As Object)
Dim p As Node = FindPrevious(x)
If (Not (p.Link Is Nothing)) Then
p.Link = p.Link.Link
End If
End Sub
Truy xuất dữ liệu các phần tử trong
Danh sách
Slide 7 – Danh sách liên kết và Tập hợp 16
Hiển thị nội dung các phần tử trong danh sách
Public Sub PrintList()
Dim current As New Node()
current = header
While (Not (current.Link Is Nothing))
Console.WriteLine(current.Link.Element)
current = current.Link
End While
End Sub
Ưu điểm của Danh sách liên kết
Slide 7 – Danh sách liên kết và Tập hợp 17
Các thao tác thêm, bớt các phần tử trong danh sách khá
dễ dàng, chỉ cần thay đổi mối liên kết giữa các phần tử
với nhau
Kích thước danh sách được cấp phát tự động -> tiết kiệm
bộ nhớ
Số phần tử trong danh sách liên kết có thể tăng vô hạn,
tùy thuộc vào kích thước bộ nhớ
Hạn chế của Danh sách liên kết
Slide 7 – Danh sách liên kết và Tập hợp 18
Việc truy xuất và tìm kiếm các phần tử mất nhiều thời
gian hơn so với mảng bởi luôn luôn phải duyệt tuần tự
qua các phần tử trong danh sách.
Tốn bộ nhớ hơn mảng vì lưu trữ thông tin mỗi nút và
thêm thông tin vùng liên kết.
Định nghĩa SET
Slide 7 – Danh sách liên kết và Tập hợp 19
Định nghĩa: Set là tập hữu hạn các phần tử (thành viên)
và có 2 tính chất:
Các phần tử không được sắp xếp theo thứ tự
Mỗi phần tử không được xuất hiện nhiều hơn 1 lần
Khai báo một Set: {phần tử 1, phần tử 2,…, phần tử n}
Ví dụ: {0,1,2,3,4,5,6,7,8,9}
Các định nghĩa khác
Slide 7 – Danh sách liên kết và Tập hợp 20
Tập rỗng (empty set): không chứa phần tử nào
Tập vũ trụ (universe set): chứa mọi phần tử có thể
Tập bằng nhau: hai tập bằng nhau nếu chúng chứa các
phần tử như nhau.
Tập con: một tập gọi tập con của một tập khác nếu mọi
phần tử của nó nằm trong tập kia.
Các phép toán trên Tập
Slide 7 – Danh sách liên kết và Tập hợp 21
Phép hợp (Union)
Hợp của A và B là tập gồm tất cả các phần
tử thuộc ít nhất một trong hai tập A và B
Phép giao (Intersection)
Giao của hai tập A và B là tập tất cả các
phần tử vừa thuộc A, vừa thuộc B
Phép Hiệu (Difference)
Hiệu của tập A với tập B là tập tất cả các
phần tử thuộc A nhưng không thuộc B
Cài đặt Tập
Slide 7 – Danh sách liên kết và Tập hợp 22
VB.Net cung cấp một số lớp cài đặt tập:
Hashtable
BitArray
Sử dụng lớp Hastable
Slide 7 – Danh sách liên kết và Tập hợp 23
Ví dụ phương thức khởi tạo
Public Class CSet
‘ khai báo tập hợp ‘data’
Private data As Hashtable
Public Sub New()
data = New Hashtable
End Sub
End Class
Sử dụng lớp Hastable
Slide 7 – Danh sách liên kết và Tập hợp 24
Các phương thức khác:
Add: Thêm phần tử trong tập
Remove: Xóa phần tử trong tập
Size: Đếm số lượng phần tử trong tập
Union: Thực hiện hợp hai tập
Intersection: Thực hiện phép giao hai tập
Subset: Tạo tập con của một tập khác
Difference : Thực hiện phép trừ hai tập
Sử dụng lớp Hastable
Slide 7 – Danh sách liên kết và Tập hợp 25
Ví dụ thực hiện phương thức Add:
Public Sub Add(ByVal item As Object)
‘ Kiểm tra xem tập hợp đã chứa item chưa
If Not (data.ContainsValue(item)) Then
data.Add(Hash(item), item)
End If
End Sub
Sử dụng lớp Hastable
Slide 7 – Danh sách liên kết và Tập hợp 26
Ví dụ thực hiện phương thức Union:
Public Function Union(ByVal aSet As CSet) As CSet
Dim tempSet As New CSet
Dim hashObject As Object
‘Xây dựng 1 tập hợp
For Each hashObject In data.Keys
tempSet.Add(Me.data.item(hashObject))
Next
‘Add các phần tử từ tập hợp 2 vào
For Each hashObject In aSet.data.Keys
If (Not (Me.data.ContainsKey(hashObject))) Then
tempSet.Add(aSet.data.Item(hashObject))
End If
Next
Return tempSet
End Function
Sử dụng lớp BitArray
Slide 7 – Danh sách liên kết và Tập hợp 27
BitArray được sử dụng để lưu trữ tập số nguyên.
Nguyên tắc lưu trữ: phần tử có giá trị N trong tập được
biểu diễn bởi giá trị True tại vị trí N của tập.
Ví dụ: tập chứa 1 và 4 là: {True, False, False, True}
Sử dụng lớp BitArray
Slide 7 – Danh sách liên kết và Tập hợp 28
Lợi ích của sử dụng lớp BitArray:
Không gian bộ nhớ để lưu trữ nhỏ
Các thao tác Union, Intersection, Difference được thực hiện
bằng cách sử dụng các toán tử AND, OR, NOT với thời gian cài
đặt nhanh hơn.
Tổng kết
Slide 7 – Danh sách liên kết và Tập hợp 29
Danh sách liên kết gồm tập hợp các nút liên kết với nhau thông
qua vùng liên kết.
Dùng lớp Node để cài đặt danh sách liên kết trong VB.Net
Một số thao tác cơ bản trên danh sách liên kết: thêm phần tử, xóa
phần tử, tìm kiếm, duyệt tất cả các phần tử.
Tập (set) gồm hữu hạn các phần tử chưa được sắp thứ tự và mỗi
phần tử xuất hiện đúng một lần.
Dùng lớp Hashtable hoặc lớp BitArray để cài đặt tập trong VB.Net.

Contenu connexe

Tendances

Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)iwanttoit
 
Hướng dan su dung packet tracer
Hướng dan su dung packet tracerHướng dan su dung packet tracer
Hướng dan su dung packet tracerDuc Nguyen
 
Hd th sql server_tuan5_n_khanh
Hd th sql server_tuan5_n_khanhHd th sql server_tuan5_n_khanh
Hd th sql server_tuan5_n_khanhHai Rom
 
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTBài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTMasterCode.vn
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2pisu412
 
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại viĐề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại viĐỗ Đức Hùng
 
Bài 4: ARRAY VÀ ARRAYLIST - Giáo trình FPT
Bài 4: ARRAY VÀ ARRAYLIST - Giáo trình FPTBài 4: ARRAY VÀ ARRAYLIST - Giáo trình FPT
Bài 4: ARRAY VÀ ARRAYLIST - Giáo trình FPTMasterCode.vn
 
[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử lí[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử líHong Phuoc Nguyen
 
Bài giảng cơ sở dữ liệu
Bài giảng cơ sở dữ liệuBài giảng cơ sở dữ liệu
Bài giảng cơ sở dữ liệutrieulongweb
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên nataliej4
 
Tieu Luan - Mang may tinh voi Packet tracer
Tieu Luan - Mang may tinh voi Packet tracerTieu Luan - Mang may tinh voi Packet tracer
Tieu Luan - Mang may tinh voi Packet tracerDuc Nguyen
 
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)MasterCode.vn
 
Bài Tập Xử Lí Tín Hiệu Số
Bài Tập Xử Lí Tín Hiệu SốBài Tập Xử Lí Tín Hiệu Số
Bài Tập Xử Lí Tín Hiệu Sốviethung094
 
Bài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhBài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhCao Toa
 
Kiến trúc máy tính và hợp ngữ bài 05
Kiến trúc máy tính và hợp ngữ bài 05Kiến trúc máy tính và hợp ngữ bài 05
Kiến trúc máy tính và hợp ngữ bài 05Nhóc Nhóc
 
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...MasterCode.vn
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngleemindinh
 
Thuật toán Nhân Bình Phương - demo
Thuật toán Nhân Bình Phương - demoThuật toán Nhân Bình Phương - demo
Thuật toán Nhân Bình Phương - demoCông Thắng Trương
 
đinh tuyến tĩnh và định tuyến động
đinh tuyến tĩnh và định tuyến độngđinh tuyến tĩnh và định tuyến động
đinh tuyến tĩnh và định tuyến độngnguyenhoangbao
 

Tendances (20)

Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
 
Hướng dan su dung packet tracer
Hướng dan su dung packet tracerHướng dan su dung packet tracer
Hướng dan su dung packet tracer
 
Hd th sql server_tuan5_n_khanh
Hd th sql server_tuan5_n_khanhHd th sql server_tuan5_n_khanh
Hd th sql server_tuan5_n_khanh
 
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTBài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
 
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại viĐề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
 
Chia subnetmask
Chia subnetmaskChia subnetmask
Chia subnetmask
 
Bài 4: ARRAY VÀ ARRAYLIST - Giáo trình FPT
Bài 4: ARRAY VÀ ARRAYLIST - Giáo trình FPTBài 4: ARRAY VÀ ARRAYLIST - Giáo trình FPT
Bài 4: ARRAY VÀ ARRAYLIST - Giáo trình FPT
 
[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử lí[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử lí
 
Bài giảng cơ sở dữ liệu
Bài giảng cơ sở dữ liệuBài giảng cơ sở dữ liệu
Bài giảng cơ sở dữ liệu
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
 
Tieu Luan - Mang may tinh voi Packet tracer
Tieu Luan - Mang may tinh voi Packet tracerTieu Luan - Mang may tinh voi Packet tracer
Tieu Luan - Mang may tinh voi Packet tracer
 
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
 
Bài Tập Xử Lí Tín Hiệu Số
Bài Tập Xử Lí Tín Hiệu SốBài Tập Xử Lí Tín Hiệu Số
Bài Tập Xử Lí Tín Hiệu Số
 
Bài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhBài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tính
 
Kiến trúc máy tính và hợp ngữ bài 05
Kiến trúc máy tính và hợp ngữ bài 05Kiến trúc máy tính và hợp ngữ bài 05
Kiến trúc máy tính và hợp ngữ bài 05
 
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàng
 
Thuật toán Nhân Bình Phương - demo
Thuật toán Nhân Bình Phương - demoThuật toán Nhân Bình Phương - demo
Thuật toán Nhân Bình Phương - demo
 
đinh tuyến tĩnh và định tuyến động
đinh tuyến tĩnh và định tuyến độngđinh tuyến tĩnh và định tuyến động
đinh tuyến tĩnh và định tuyến động
 

Similaire à Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT

Cấu trúc dữ liệu kiểu danh sách liên kết
Cấu trúc dữ liệu kiểu danh sách liên kếtCấu trúc dữ liệu kiểu danh sách liên kết
Cấu trúc dữ liệu kiểu danh sách liên kếthotro
 
Bài 3: COLLECTION TRONG VB.NET - Giáo trình FPT
Bài 3: COLLECTION TRONG VB.NET - Giáo trình FPTBài 3: COLLECTION TRONG VB.NET - Giáo trình FPT
Bài 3: COLLECTION TRONG VB.NET - Giáo trình FPTMasterCode.vn
 
C3 danh sachlienket
C3 danh sachlienketC3 danh sachlienket
C3 danh sachlienkethiep0109
 
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPTBài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPTMasterCode.vn
 
Cau truc dl_va_giai_thuat_bai1[1] - copy
Cau truc dl_va_giai_thuat_bai1[1] - copyCau truc dl_va_giai_thuat_bai1[1] - copy
Cau truc dl_va_giai_thuat_bai1[1] - copyNguyen Van Hung
 
Bài 6: Mô hình hóa dữ liệu
Bài 6: Mô hình hóa dữ liệuBài 6: Mô hình hóa dữ liệu
Bài 6: Mô hình hóa dữ liệuMasterCode.vn
 
Bài tập CTDL và GT 5
Bài tập CTDL và GT 5Bài tập CTDL và GT 5
Bài tập CTDL và GT 5Hồ Lợi
 
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT.pptx
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT.pptxCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT.pptx
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT.pptxVuDuong69
 
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...MasterCode.vn
 
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPTBài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPTMasterCode.vn
 
Oop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátOop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátTráng Hà Viết
 
Bài tập CTDL và GT 3
Bài tập CTDL và GT 3Bài tập CTDL và GT 3
Bài tập CTDL và GT 3Hồ Lợi
 
Cấu trúc dữ liệu cơ bản 2
Cấu trúc dữ liệu cơ bản 2Cấu trúc dữ liệu cơ bản 2
Cấu trúc dữ liệu cơ bản 2Hồ Lợi
 
Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3NguynMinh294
 
02 stack queue
02 stack queue02 stack queue
02 stack queuelanheo04
 
Lappj trình hướng đối tượng
Lappj trình hướng đối tượngLappj trình hướng đối tượng
Lappj trình hướng đối tượngHưởng Nguyễn
 

Similaire à Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT (20)

Cấu trúc dữ liệu kiểu danh sách liên kết
Cấu trúc dữ liệu kiểu danh sách liên kếtCấu trúc dữ liệu kiểu danh sách liên kết
Cấu trúc dữ liệu kiểu danh sách liên kết
 
C5 danhsachlienket
C5 danhsachlienketC5 danhsachlienket
C5 danhsachlienket
 
Bài 3: COLLECTION TRONG VB.NET - Giáo trình FPT
Bài 3: COLLECTION TRONG VB.NET - Giáo trình FPTBài 3: COLLECTION TRONG VB.NET - Giáo trình FPT
Bài 3: COLLECTION TRONG VB.NET - Giáo trình FPT
 
C3 danh sachlienket
C3 danh sachlienketC3 danh sachlienket
C3 danh sachlienket
 
BáO CáO Lý ThuyếT Java
BáO CáO Lý ThuyếT JavaBáO CáO Lý ThuyếT Java
BáO CáO Lý ThuyếT Java
 
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPTBài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
 
Cau truc dl_va_giai_thuat_bai1[1] - copy
Cau truc dl_va_giai_thuat_bai1[1] - copyCau truc dl_va_giai_thuat_bai1[1] - copy
Cau truc dl_va_giai_thuat_bai1[1] - copy
 
Bài 6: Mô hình hóa dữ liệu
Bài 6: Mô hình hóa dữ liệuBài 6: Mô hình hóa dữ liệu
Bài 6: Mô hình hóa dữ liệu
 
Com201 slide 6
Com201   slide 6Com201   slide 6
Com201 slide 6
 
Bài tập CTDL và GT 5
Bài tập CTDL và GT 5Bài tập CTDL và GT 5
Bài tập CTDL và GT 5
 
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT.pptx
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT.pptxCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT.pptx
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT.pptx
 
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
 
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPTBài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
 
Oop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátOop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quát
 
Bài tập CTDL và GT 3
Bài tập CTDL và GT 3Bài tập CTDL và GT 3
Bài tập CTDL và GT 3
 
Cấu trúc dữ liệu cơ bản 2
Cấu trúc dữ liệu cơ bản 2Cấu trúc dữ liệu cơ bản 2
Cấu trúc dữ liệu cơ bản 2
 
Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3
 
02 stack queue
02 stack queue02 stack queue
02 stack queue
 
Lappj trình hướng đối tượng
Lappj trình hướng đối tượngLappj trình hướng đối tượng
Lappj trình hướng đối tượng
 
Chuong 07 lop
Chuong 07 lopChuong 07 lop
Chuong 07 lop
 

Plus de MasterCode.vn

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnMasterCode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnMasterCode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnMasterCode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnMasterCode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnMasterCode.vn
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnMasterCode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnMasterCode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnMasterCode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnMasterCode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnMasterCode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnMasterCode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 

Plus de MasterCode.vn (20)

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vn
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
 

Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT

  • 1. Bài 7: DANH SÁCH LIÊN KẾT (LINKED LIST) VÀ TẬP HỢP (SET)
  • 2. Nhắc lại bài cũ Slide 7 – Danh sách liên kết và Tập hợp 2 Tìm hiểu 3 cấu trúc dữ liệu đặc biệt: Ngăn xếp (Stack), Hàng đợi (Queue) và Cây (Tree): Khái niệm Cách cài đặt trong VB.Net Các thao tác cơ bản trên các cấu trúc dữ liệu
  • 3. Mục tiêu bài học hôm nay Slide 7 – Danh sách liên kết và Tập hợp 3 Tìm hiểu về danh sách liên kết (Linked List): Khái niệm danh sách liên kết Các thao tác trên danh sách liên kết Tìm hiểu về Set (tập hợp): Định nghĩa Set Các đặc trưng Cách cài đặt Set bằng VB.Net
  • 4. Khái niệm Danh sách liên kết Slide 7 – Danh sách liên kết và Tập hợp 4 Mảng là một hình thức liên kết ngầm: Các phần tử trong mảng truyền thống được cấp phát vùng nhớ một cách liên tiếp nhau
  • 5. Khái niệm danh sách liên kết Slide 7 – Danh sách liên kết và Tập hợp 5 Danh sách liên kết cũng gồm nhiều phần tử như mảng, nhưng có sự khác biệt cơ bản là các phần tử không nằm liên tiếp nhau trong bộ nhớ, mà dùng liên kết để móc nối với nhau. Có nhiều loại danh sách liên kết: Danh sách liên kết đơn Danh sách liên kết kép Danh sách liên kết vòng … Trong bài này ta tìm hiểu kĩ về danh sách liên kết đơn
  • 6. Khái niệm Danh sách liên kết Slide 7 – Danh sách liên kết và Tập hợp 6 Hình mô tả 4 kiểu danh sách liên kết Đơn Đôi Vòng Vòng đôi
  • 7. Khái niệm danh sách liên kết Slide 7 – Danh sách liên kết và Tập hợp 7 Danh sách liên kết đơn là danh sách gồm nhiều nút móc nối với nhau. Mỗi nút gồm: Trường dữ liệu lưu trữ các giá trị của nút. Trường lưu trữ liên kết Danh sách liên kết đơn cần có một con trỏ đầu danh sách (head) trỏ đến nút đầu tiên, các nút còn lại trỏ tuần tự đến nút kế tiếp và một liên kết rỗng (null) ở nút cuối cùng (không trỏ đến đâu). Con trỏ đầu danh sách Liên kết rỗng cuối danh sách Vùng dữ liệu Vùng liên kết
  • 8. Khái niệm Danh sách liên kết Slide 7 – Danh sách liên kết và Tập hợp 8 Ví dụ:
  • 9. Khái niệm Danh sách liên kết Slide 7 – Danh sách liên kết và Tập hợp 9 Ví dụ: dùng danh sách biểu diễn đa thức và tính tổng hai đa thức
  • 10. Các thao tác trên Danh sách liên kết Slide 7 – Danh sách liên kết và Tập hợp 10 Tạo danh sách Khai báo và khởi tạo danh sách liên kết Thêm phần tử: Thêm vào đầu/cuối danh sách hoặc vào sau một phần tử cho trước Tìm kiếm phần tử trong danh sách: Tìm kiếm phần tử có giá trị cho trước Tìm kiếm phần tử đứng trước phần tử cho trước Xóa bỏ phần tử trong danh sách: Xóa phần tử đầu/cuối danh sách Hiển thị nội dung của toàn bộ danh sách
  • 11. Tạo danh sách liên kết Slide 7 – Danh sách liên kết và Tập hợp 11 Dùng lớp Node để tạo danh sách liên kết trong VB.Net: mỗi nút của danh sách gồm 2 trường Trường Element lưu trữ thông tin của nút Trường Link lưu trữ liên kết đến nút kế tiếp Khai báo và hàm tạo: Public Class Node Public Element As Object Public Link As Node Public Sub New() Element = Nothing Link = Nothing End Sub Public Sub New(ByVal theElement As Object) Element = theElement Link = Nothing End Sub
  • 12. Tìm kiếm phần tử trong Danh sách Slide 7 – Danh sách liên kết và Tập hợp 12 Thao tác tìm kiếm một phần tử trong danh sách: Private Function Find(ByVal item As Object) As Node Dim current As New Node() current = header While (current.Element <> item) current = current.Link End While Return current End Function
  • 13. Tìm kiếm phần tử trong Danh sách Slide 7 – Danh sách liên kết và Tập hợp 13 Tìm kiếm một phần tử trước một phần tử khác trong danh sách: Private Function FindPrevious(ByVal x As Object) As Node Dim current As Node = header While (Not (current.Link Is Nothing) And _ current.Link.element <> x) current = current.Link End While Return current End Function
  • 14. Thêm phần tử vào Danh sách Slide 7 – Danh sách liên kết và Tập hợp 14 Public Sub Insert(ByVal newItem As Object, ByVal after As Object) Dim current As New Node() Dim newnode As New Node(newItem) current = Find(after) newnode.Link = current.Link current.Link = newnode End Sub
  • 15. Xóa phần tử trong Danh sách Slide 7 – Danh sách liên kết và Tập hợp 15 Thao tác xóa một phần tử: Public Sub Remove(ByVal x As Object) Dim p As Node = FindPrevious(x) If (Not (p.Link Is Nothing)) Then p.Link = p.Link.Link End If End Sub
  • 16. Truy xuất dữ liệu các phần tử trong Danh sách Slide 7 – Danh sách liên kết và Tập hợp 16 Hiển thị nội dung các phần tử trong danh sách Public Sub PrintList() Dim current As New Node() current = header While (Not (current.Link Is Nothing)) Console.WriteLine(current.Link.Element) current = current.Link End While End Sub
  • 17. Ưu điểm của Danh sách liên kết Slide 7 – Danh sách liên kết và Tập hợp 17 Các thao tác thêm, bớt các phần tử trong danh sách khá dễ dàng, chỉ cần thay đổi mối liên kết giữa các phần tử với nhau Kích thước danh sách được cấp phát tự động -> tiết kiệm bộ nhớ Số phần tử trong danh sách liên kết có thể tăng vô hạn, tùy thuộc vào kích thước bộ nhớ
  • 18. Hạn chế của Danh sách liên kết Slide 7 – Danh sách liên kết và Tập hợp 18 Việc truy xuất và tìm kiếm các phần tử mất nhiều thời gian hơn so với mảng bởi luôn luôn phải duyệt tuần tự qua các phần tử trong danh sách. Tốn bộ nhớ hơn mảng vì lưu trữ thông tin mỗi nút và thêm thông tin vùng liên kết.
  • 19. Định nghĩa SET Slide 7 – Danh sách liên kết và Tập hợp 19 Định nghĩa: Set là tập hữu hạn các phần tử (thành viên) và có 2 tính chất: Các phần tử không được sắp xếp theo thứ tự Mỗi phần tử không được xuất hiện nhiều hơn 1 lần Khai báo một Set: {phần tử 1, phần tử 2,…, phần tử n} Ví dụ: {0,1,2,3,4,5,6,7,8,9}
  • 20. Các định nghĩa khác Slide 7 – Danh sách liên kết và Tập hợp 20 Tập rỗng (empty set): không chứa phần tử nào Tập vũ trụ (universe set): chứa mọi phần tử có thể Tập bằng nhau: hai tập bằng nhau nếu chúng chứa các phần tử như nhau. Tập con: một tập gọi tập con của một tập khác nếu mọi phần tử của nó nằm trong tập kia.
  • 21. Các phép toán trên Tập Slide 7 – Danh sách liên kết và Tập hợp 21 Phép hợp (Union) Hợp của A và B là tập gồm tất cả các phần tử thuộc ít nhất một trong hai tập A và B Phép giao (Intersection) Giao của hai tập A và B là tập tất cả các phần tử vừa thuộc A, vừa thuộc B Phép Hiệu (Difference) Hiệu của tập A với tập B là tập tất cả các phần tử thuộc A nhưng không thuộc B
  • 22. Cài đặt Tập Slide 7 – Danh sách liên kết và Tập hợp 22 VB.Net cung cấp một số lớp cài đặt tập: Hashtable BitArray
  • 23. Sử dụng lớp Hastable Slide 7 – Danh sách liên kết và Tập hợp 23 Ví dụ phương thức khởi tạo Public Class CSet ‘ khai báo tập hợp ‘data’ Private data As Hashtable Public Sub New() data = New Hashtable End Sub End Class
  • 24. Sử dụng lớp Hastable Slide 7 – Danh sách liên kết và Tập hợp 24 Các phương thức khác: Add: Thêm phần tử trong tập Remove: Xóa phần tử trong tập Size: Đếm số lượng phần tử trong tập Union: Thực hiện hợp hai tập Intersection: Thực hiện phép giao hai tập Subset: Tạo tập con của một tập khác Difference : Thực hiện phép trừ hai tập
  • 25. Sử dụng lớp Hastable Slide 7 – Danh sách liên kết và Tập hợp 25 Ví dụ thực hiện phương thức Add: Public Sub Add(ByVal item As Object) ‘ Kiểm tra xem tập hợp đã chứa item chưa If Not (data.ContainsValue(item)) Then data.Add(Hash(item), item) End If End Sub
  • 26. Sử dụng lớp Hastable Slide 7 – Danh sách liên kết và Tập hợp 26 Ví dụ thực hiện phương thức Union: Public Function Union(ByVal aSet As CSet) As CSet Dim tempSet As New CSet Dim hashObject As Object ‘Xây dựng 1 tập hợp For Each hashObject In data.Keys tempSet.Add(Me.data.item(hashObject)) Next ‘Add các phần tử từ tập hợp 2 vào For Each hashObject In aSet.data.Keys If (Not (Me.data.ContainsKey(hashObject))) Then tempSet.Add(aSet.data.Item(hashObject)) End If Next Return tempSet End Function
  • 27. Sử dụng lớp BitArray Slide 7 – Danh sách liên kết và Tập hợp 27 BitArray được sử dụng để lưu trữ tập số nguyên. Nguyên tắc lưu trữ: phần tử có giá trị N trong tập được biểu diễn bởi giá trị True tại vị trí N của tập. Ví dụ: tập chứa 1 và 4 là: {True, False, False, True}
  • 28. Sử dụng lớp BitArray Slide 7 – Danh sách liên kết và Tập hợp 28 Lợi ích của sử dụng lớp BitArray: Không gian bộ nhớ để lưu trữ nhỏ Các thao tác Union, Intersection, Difference được thực hiện bằng cách sử dụng các toán tử AND, OR, NOT với thời gian cài đặt nhanh hơn.
  • 29. Tổng kết Slide 7 – Danh sách liên kết và Tập hợp 29 Danh sách liên kết gồm tập hợp các nút liên kết với nhau thông qua vùng liên kết. Dùng lớp Node để cài đặt danh sách liên kết trong VB.Net Một số thao tác cơ bản trên danh sách liên kết: thêm phần tử, xóa phần tử, tìm kiếm, duyệt tất cả các phần tử. Tập (set) gồm hữu hạn các phần tử chưa được sắp thứ tự và mỗi phần tử xuất hiện đúng một lần. Dùng lớp Hashtable hoặc lớp BitArray để cài đặt tập trong VB.Net.