SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
Bài 6:
CÁC CẤU TRÚC DỮ LIỆU ĐẶC BIỆT:
NGĂN XẾP, HÀNG ĐỢI, CÂY
Nhắc lại bài cũ
Tìm hiểu các giải thuật sắp xếp cơ bản trên cấu
trúc dữ liệu mảng
Tìm hiểu các giải thuật tìm kiếm cơ bản trên
cấu trúc dữ liệu mảng
Đánh giá và so sánh hiệu quả các giải thuật
Slide 6 – Ngăn xếp, Hàng đợi và Cây 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 6 – Ngăn xếp, Hàng đợi và Cây 3
Khái niệm ngăn xếp
Slide 6 – Ngăn xếp, Hàng đợi và Cây 4
Ngăn xếp (Stack):
Các phần tử được lưu trữ thành một danh
sách liên tiếp nhau.
Việc thêm hay loại lấy một phần tử ra
khỏi danh sách đều được thực hiện ở một
đầu gọi là đỉnh của ngăn xếp.
Ví dụ: Chồng sách đặt trên bàn
Khái niệm ngăn xếp
Slide 6 – Ngăn xếp, Hàng đợi và Cây 5
Stack tuân theo cấu trúc: LIFO (Last In – First Out):
Phần tử được đưa vào trong ngăn xếp sau cùng sẽ được lấy ra
trước tiên.
Phần tử đưa vào trong ngăn xếp trước tiên sẽ được lấy ra sau
cùng.
Các thao tác trên ngăn xếp
Slide 6 – Ngăn xếp, Hàng đợi và Cây 6
Có một số thao tác với ngăn xếp hay được thực hiện
Thêm (push) một phần tử vào đỉnh ngăn xếp
Lấy (pop) một phần tử từ đỉnh của ngăn xếp
Xem (peek) nội dung của phần tử ở đỉnh của ngăn
xếp
Ví dụ
Slide 6 – Ngăn xếp, Hàng đợi và Cây 7
Stack S lưu trữ các kí tự
Push
(S,A)
Push
(S,B)
Push
(S,C)
Pop
(S,C)
Push
(S,D)
Pop
(S,D)
Pop
(S,B)
Ngăn xếp được cài đặt trong VB.Net bằng lớp Stack
Lớp Stack là cài đặt giao diện Icollection
Lớp Stack cung cấp các phương thức cho phép thực hiện
các thao tác trên ngăn xếp như: Push(), Pop(), Peek(),
Contains(), …
Lớp Stack trong VB.Net
Slide 6 – Ngăn xếp, Hàng đợi và Cây 8
Khởi tạo ngăn xếp
Slide 6 – Ngăn xếp, Hàng đợi và Cây 9
3 cách khởi tạo:
Cách 1: Tạo 1 ngăn xếp rỗng mặc định chứa được 10 giá trị
Ví dụ: Dim myStack As New Stack()
Cách 2: Tạo 1 ngăn xếp từ 1 đối tượng collection khác
Ví dụ: Dim names() As String = {"Raymond",
"David“,"Mike"}
Dim nameStack As New Stack(names)
Cách 3: Tạo 1 ngăn xếp và chỉ định luôn dung lượng ngăn xếp
Ví dụ: Dim myStack As New Stack(25)
Các phương thức lớp Stack
Slide 6 – Ngăn xếp, Hàng đợi và Cây 10
Push(): Thêm một phần tử (Item) vào đỉnh ngăn xếp myStack
Cú pháp: myStack.Push(Item)
Pop(): Lấy phần tử từ đỉnh ngăn xếp myStack
Cú pháp: myStack.Pop() -> trả về phần tử ở đỉnh của ngăn xếp
Peek(): Xem nội dung phần tử tại đỉnh ngăn xếp myStack
Cú pháp: myStack.Peek()
Các phương thức lớp Stack
Count(): Trả về số phần tử có trong ngăn xếp myStack
Cú pháp: myStack.Count()
Clear(): Xóa tất cả các phần tử có trong ngăn xếp myStack
Cú pháp: myStack.Clear()
Contains(): Kiểm tra xem một phần tử Item nào đó có tồn tại trong
ngăn xếp myStack không
Cú pháp: myStack.Contains(Item)
Slide 6 – Ngăn xếp, Hàng đợi và Cây 11
Các phương thức lớp Stack
CopyTo(): copy nội dung của ngăn xếp myStack vào một mảng
myArray bắt đầu từ vị trí index
Cú pháp: myStack.CopyTo(myArray, index)
ToArray(): copy nội dung của ngăn xếp myStack vào một mảng
myArray
Cú pháp: myArray = myStack.ToArray()
Slide 6 – Ngăn xếp, Hàng đợi và Cây 12
Ví dụ sử dụng một số phương thức
Slide 6 – Ngăn xếp, Hàng đợi và Cây 13
Imports System.Collections
Module Module1
Sub Main()
Dim Nums As New Stack()
Dim num As Integer
Dim x As Integer
Dim arrayCopy() As Object
Dim myArray() As Object
'Phuong thuc Push()
For x = 5 To 20 Step +5
Nums.Push(x)
Next
' Phuong thuc Peek() va Pop()
If (IsNumeric(Nums.Peek())) Then
num = Nums.Pop()
Console.WriteLine("Phan tu vua duoc lay ra
khoi ngan xep la: " + num)
End If
Ví dụ sử dụng một số phương thức
Slide 6 – Ngăn xếp, Hàng đợi và Cây 14
'Phuong thuc Contains()
If (Nums.Contains(10)) Then
Console.WriteLine("Gia tri 10 ton
tai trong Stack")
End If
'Phuong thuc Count() va Clear()
If (Nums.Count() = 0) Then
Nums.Clear()
End If
'Phuong thuc CopyTo() va ToArray()
Nums.CopyTo(arrayCopy, 0)
myArray = Nums.ToArray()
End Sub
End Module
Ví dụ ứng dụng Stack
Slide 6 – Ngăn xếp, Hàng đợi và Cây 15
Ứng dụng stack để đảo ngược danh sách
Giải thuật:
1. Lặp lại n lần
1.1. Nhập vào một giá trị
1.2. Đẩy nó vào stack
2. Lặp khi stack chưa rỗng
2.1. Lấy một giá trị từ stack
2.2. In ra
Ví dụ ứng dụng Stack
Slide 6 – Ngăn xếp, Hàng đợi và Cây 16
Khái niệm Hàng đợi (Queue)
Slide 6 – Ngăn xếp, Hàng đợi và Cây 17
Hàng đợi (Queue):
Các phần tử được lưu trữ thành một danh sách liên tiếp nhau.
Việc thêm 1 phần tử vào danh sách được thực hiện ở một đầu (cuối hàng)
Việc lấy ra 1 phần tử của danh sách được thực hiện ở đầu khác (đầu hàng)
Ví dụ:
Dòng người xếp hàng chờ trong siêu thị
Khái niệm Hàng đợi (Queue)
Slide 6 – Ngăn xếp, Hàng đợi và Cây 18
Hàng đợi tuân theo cấu trúc FIFO (First In – First Out):
Các phần tử vào trong hàng đợi trước sẽ được lấy ra trước.
2 13
Thêm vào
1
Lấy ra
Các thao tác trên hàng đợi
Slide 6 – Ngăn xếp, Hàng đợi và Cây 19
Một số thao tác cơ bản trên queue
Bổ sung (enqueue) thêm phần tử vào cuối hàng đợi
Lấy (dequeue phần tử ở đầu hàng đợi
Xem (peek) nội dung phần tử ở đầu hàng đợi
Ví dụ
Slide 6 – Ngăn xếp, Hàng đợi và Cây 20
Ví dụ hàng đợi Q lưu trữ các kí tự
Bổ sung A, B và C vào
cuối hàng đợi
Lấy phần tử đầu tiên
trong hàng đợi
Bổ sung D vào cuối
hàng đợi
Hàng đợi được cài đặt trong VB.Net bằng lớp Queue
Lớp Queue bao gồm các phương thức như:
Enqueue(): Bổ sung thêm phần tử vào đuôi của hàng đợi
Dequeue(): Lấy một phần tử từ đầu của hàng đợi
Peek(): Xem nội dung của phần tử tại đầu của hàng đợi
Count(): Trả về số phần tử có trong hàng đợi
Clear(): Hủy hàng đợi và tất cả các phần tử có trong hàng đợi
Lớp Hàng đợi trong VB.Net
Slide 6 – Ngăn xếp, Hàng đợi và Cây 21
Có 3 cách:
Cách 1: Tạo một hàng đợi rỗng mặc định chứa được 32 phần tử
Ví dụ: Dim myQueue As New Queue()
Cách 2: Tạo một hàng đợi và chỉ định sẵn dung lượng hàng đợi
Ví dụ: Dim myQueue As New Queue(100)
Cách 3: Tạo một ngăn xếp và chỉ định tốc độ gia tăng kích thước
Ví dụ: Dim myQueue As New Queue(32, 3R)
Cách khai báo Hàng đợi
Slide 6 – Ngăn xếp, Hàng đợi và Cây 22
Các phương thức trong Hàng đợi
Slide 6 – Ngăn xếp, Hàng đợi và Cây 23
Enqueue(): Bổ sung phần tử Item vào đuôi của hàng đợi myQueue
Cấu trúc: myQueue.Enqueue(Item)
Dequeue(): Lấy phần tử từ đầu của hàng đợi myQueue
Cấu trúc: myQueue.Dequeue
Peek(): Thăm phần tử tại đầu của hàng đợi myQueue
Cấu trúc: myQueue.Peek
Các phương thức trong Hàng đợi
Slide 6 – Ngăn xếp, Hàng đợi và Cây 24
Count: Trả về số phần tử có trong hàng đợi
Cấu trúc: myQueue.Count
Clear: Hủy hàng đợi và tất cả các phần tử có trong hàng đợi
myQueue
Cấu trúc: myQueue.Clear
Ứng dụng của Hàng đợi
Slide 6 – Ngăn xếp, Hàng đợi và Cây 25
Hàng đợi có thể được sử dụng trong một số bài toán:
Bài toán ‘sản xuất và tiêu thụ’ (ứng dụng trong các hệ điều hành
song song).
Bộ đệm lệnh (ví dụ: Nhấn phím ⇒ Bộ đệm ⇒ CPU xử lý).
Xử lý các lệnh trong máy tính (ứng dụng trong HĐH, trình biên
dịch), hàng đợi các tiến trình chờ được xử lý,
Khái niệm Cây (Tree)
Slide 6 – Ngăn xếp, Hàng đợi và Cây 26
Cây là tập hợp các phần tử (Nút) và các cạnh được tổ
chức như sau:
Mỗi nút của cây mang một thông tin nào đó
Cách cạnh dùng để liên kết các nút với nhau
Khái niệm Cây (Tree)
Slide 6 – Ngăn xếp, Hàng đợi và Cây 27
Khái niệm Cây (Tree)
Slide 6 – Ngăn xếp, Hàng đợi và Cây 28
Các khái niệm liên quan:
Nút cha – Nút con: Mỗi nút trong cây có đúng một nút nằm
trên nó (nút cha), các nút nằm ngay dưới nó gọi là nút con
Nút anh em: các nút nằm cùng cấp
Nút lá: Nút không có nút con nào.
Khái niệm Cây (Tree)
Slide 6 – Ngăn xếp, Hàng đợi và Cây 29
Các khái niệm liên quan:
Bậc của nút: là số cây con của nút đó
Bậc của cây: là bậc lớn nhất của các nút trong cây
Mức của nút: mức của nút gốc cây con chứa nó cộng thêm 1,
trong đó mức của nút gốc = 0.
Chiều cao của cây: là mức cao nhất của các nút trong cây
Chiều dài đường đi của một nút: là tổng số nút tính từ nút gốc
để đi đến nút đó.
Cây nhị phân
Slide 6 – Ngăn xếp, Hàng đợi và Cây 30
Cây nhị phân là cây đặc biệt mà mỗi nút của nó chỉ có nhiều nhất 2
nút con.
Khi đó, 2 cây con của mỗi nút được gọi là cây con trái và cây con
phải
Cây nhị phân Cây nhị phân đầy đủ
Cây nhị phân tìm kiếm
Slide 6 – Ngăn xếp, Hàng đợi và Cây 31
Là cây nhị phân có tính chất:
Khóa của nút con bên trái bao giờ cũng nhỏ hơn khóa của nút cha
Khóa của nút con bên phải bao giờ cũng lớn hơn khóa của nút cha.
Ví dụ
Là thao tác thăm tất cả các nút của cây, mỗi nút đúng
một lần.
3 phương pháp duyệt:
Duyệt theo thứ tự trước
Duyệt theo thứ tự giữa
Duyệt theo thứ tự cuối
Phương pháp đệ qui được ứng dụng để cài đặt các
phương pháp duyệt trên
Duyệt cây nhị phân
Slide 6 – Ngăn xếp, Hàng đợi và Cây 32
Duyệt cây nhị phân
Slide 6 – Ngăn xếp, Hàng đợi và Cây 33
Ví dụ duyệt theo thứ tự giữa:
Duyệt cây gốc 16, Thăm 23, Duyệt cây gốc 45
Thứ tự duyệt: 3, 16, 22, 23, 27, 45, 99
Ứng dụng cây nhị phân
Slide 6 – Ngăn xếp, Hàng đợi và Cây 34
Ứng dụng để giải bài toán tìm kiếm kiểu nhị phân và
duyệt cây theo thứ tự giữa.
Tổng kết
Slide 6 – Ngăn xếp, Hàng đợi và Cây 35
Ngăn xếp là danh sách các phần tử mà việc thêm vào
hay lấy ra các phần tử chỉ thực hiện ở Đỉnh ngăn xếp.
Hàng đợi là danh sách các phần tử mà việc thêm phần tử
được thực hiện ở cuối hàng, việc lấy ra phần tử thực hiện
ở đầu hàng.
Cây là cấu trúc mà các phần tử đóng vai trò là các Nút
của cây. Có 3 cách khác nhau để duyệt các phần tử của
cây.

Contenu connexe

Tendances

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 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýBài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýMasterCode.vn
 
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
 
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng pythonBáo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng pythonjackjohn45
 
Tài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhTài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhJojo Kim
 
Bài 3: Xác định yêu cầu hệ thống & Phân tích quy trình xử lý nghiệp vụ - Giáo...
Bài 3: Xác định yêu cầu hệ thống & Phân tích quy trình xử lý nghiệp vụ - Giáo...Bài 3: Xác định yêu cầu hệ thống & Phân tích quy trình xử lý nghiệp vụ - Giáo...
Bài 3: Xác định yêu cầu hệ thống & Phân tích quy trình xử lý nghiệp vụ - Giáo...MasterCode.vn
 
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...MasterCode.vn
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựleemindinh
 
hệ quản trị cơ sỡ dữ liệu bán vé xem phim
hệ quản trị cơ sỡ dữ liệu bán vé xem phimhệ quản trị cơ sỡ dữ liệu bán vé xem phim
hệ quản trị cơ sỡ dữ liệu bán vé xem phimthuhuynhphonegap
 
Giáo trình bảo mật thông tin
Giáo trình bảo mật thông tinGiáo trình bảo mật thông tin
Giáo trình bảo mật thông tinjackjohn45
 
Hệ điều hành (chương 4)
Hệ điều hành (chương 4)Hệ điều hành (chương 4)
Hệ điều hành (chương 4)realpotter
 
Xây dựng phần mềm quản lý thông tin sinh viên thực tập bằng ngôn ngữ lập trìn...
Xây dựng phần mềm quản lý thông tin sinh viên thực tập bằng ngôn ngữ lập trìn...Xây dựng phần mềm quản lý thông tin sinh viên thực tập bằng ngôn ngữ lập trìn...
Xây dựng phần mềm quản lý thông tin sinh viên thực tập bằng ngôn ngữ lập trìn...Dịch vụ Làm Luận Văn 0936885877
 
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPTBài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPTMasterCode.vn
 

Tendances (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
 
Bài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýBài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lý
 
Đề tài: Xây dựng Website quản lý điểm trường Phổ thông, 9đ
Đề tài: Xây dựng Website quản lý điểm trường Phổ thông, 9đĐề tài: Xây dựng Website quản lý điểm trường Phổ thông, 9đ
Đề tài: Xây dựng Website quản lý điểm trường Phổ thông, 9đ
 
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
 
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đĐề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
 
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng pythonBáo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
 
Tài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhTài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tính
 
Bài 3: Xác định yêu cầu hệ thống & Phân tích quy trình xử lý nghiệp vụ - Giáo...
Bài 3: Xác định yêu cầu hệ thống & Phân tích quy trình xử lý nghiệp vụ - Giáo...Bài 3: Xác định yêu cầu hệ thống & Phân tích quy trình xử lý nghiệp vụ - Giáo...
Bài 3: Xác định yêu cầu hệ thống & Phân tích quy trình xử lý nghiệp vụ - Giáo...
 
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
 
Đề tài: Chương trình quản lý nhập bán hàng cho cửa hàng giầy
Đề tài: Chương trình quản lý nhập bán hàng cho cửa hàng giầyĐề tài: Chương trình quản lý nhập bán hàng cho cửa hàng giầy
Đề tài: Chương trình quản lý nhập bán hàng cho cửa hàng giầy
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sự
 
hệ quản trị cơ sỡ dữ liệu bán vé xem phim
hệ quản trị cơ sỡ dữ liệu bán vé xem phimhệ quản trị cơ sỡ dữ liệu bán vé xem phim
hệ quản trị cơ sỡ dữ liệu bán vé xem phim
 
Giáo trình bảo mật thông tin
Giáo trình bảo mật thông tinGiáo trình bảo mật thông tin
Giáo trình bảo mật thông tin
 
Hệ điều hành (chương 4)
Hệ điều hành (chương 4)Hệ điều hành (chương 4)
Hệ điều hành (chương 4)
 
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đĐề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
 
Xây dựng phần mềm quản lý thông tin sinh viên thực tập bằng ngôn ngữ lập trìn...
Xây dựng phần mềm quản lý thông tin sinh viên thực tập bằng ngôn ngữ lập trìn...Xây dựng phần mềm quản lý thông tin sinh viên thực tập bằng ngôn ngữ lập trìn...
Xây dựng phần mềm quản lý thông tin sinh viên thực tập bằng ngôn ngữ lập trìn...
 
Đệ Quy, Quay Lui, Nhánh Cận
Đệ Quy, Quay Lui, Nhánh CậnĐệ Quy, Quay Lui, Nhánh Cận
Đệ Quy, Quay Lui, Nhánh Cận
 
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPTBài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
 
Phân Tích Thiết Kế Hệ Thống Thông Tin - Quản Lý Điểm
Phân Tích Thiết Kế Hệ Thống Thông Tin -  Quản Lý ĐiểmPhân Tích Thiết Kế Hệ Thống Thông Tin -  Quản Lý Điểm
Phân Tích Thiết Kế Hệ Thống Thông Tin - Quản Lý Điểm
 
Chia subnetmask
Chia subnetmaskChia subnetmask
Chia subnetmask
 

Similaire à Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT

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
 
CTDL-04-Ngan xep va Hang doi (1).pdf
CTDL-04-Ngan xep va Hang doi (1).pdfCTDL-04-Ngan xep va Hang doi (1).pdf
CTDL-04-Ngan xep va Hang doi (1).pdfLmTrn286060
 
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
 
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
 
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
 
02 stack queue
02 stack queue02 stack queue
02 stack queuelanheo04
 
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
 
04 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp01
04 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp0104 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp01
04 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp01huynhtrong774129
 
04 chuong 4 - sap xep, tim kiem, loc du lieu
04   chuong 4 - sap xep, tim kiem, loc du lieu04   chuong 4 - sap xep, tim kiem, loc du lieu
04 chuong 4 - sap xep, tim kiem, loc du lieutruong le hung
 
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTBài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTMasterCode.vn
 
Thuyết trình Cây Nhị Phân
Thuyết trình Cây  Nhị PhânThuyết trình Cây  Nhị Phân
Thuyết trình Cây Nhị PhânSad Rain
 
Bài tập CTDL và GT 12
Bài tập CTDL và GT 12Bài tập CTDL và GT 12
Bài tập CTDL và GT 12Hồ Lợi
 
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
 
Bai giang stack c++
Bai giang stack c++Bai giang stack c++
Bai giang stack c++ssuserd84133
 
Oop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpOop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpTráng Hà Viết
 
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPT
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPTBài 6 Làm việc với truy vấn cơ bản - Giáo trình FPT
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPTMasterCode.vn
 
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...MasterCode.vn
 

Similaire à Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT (20)

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
 
CTDL-04-Ngan xep va Hang doi (1).pdf
CTDL-04-Ngan xep va Hang doi (1).pdfCTDL-04-Ngan xep va Hang doi (1).pdf
CTDL-04-Ngan xep va Hang doi (1).pdf
 
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 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
 
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...
 
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
 
Com201 slide 7
Com201   slide 7Com201   slide 7
Com201 slide 7
 
02 stack queue
02 stack queue02 stack queue
02 stack queue
 
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
 
04 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp01
04 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp0104 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp01
04 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp01
 
04 chuong 4 - sap xep, tim kiem, loc du lieu
04   chuong 4 - sap xep, tim kiem, loc du lieu04   chuong 4 - sap xep, tim kiem, loc du lieu
04 chuong 4 - sap xep, tim kiem, loc du lieu
 
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTBài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
 
Com201 slide 3
Com201   slide 3Com201   slide 3
Com201 slide 3
 
Thuyết trình Cây Nhị Phân
Thuyết trình Cây  Nhị PhânThuyết trình Cây  Nhị Phân
Thuyết trình Cây Nhị Phân
 
Bài tập CTDL và GT 12
Bài tập CTDL và GT 12Bài tập CTDL và GT 12
Bài tập CTDL và GT 12
 
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
 
Bai giang stack c++
Bai giang stack c++Bai giang stack c++
Bai giang stack c++
 
Oop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpOop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớp
 
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPT
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPTBài 6 Làm việc với truy vấn cơ bản - Giáo trình FPT
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPT
 
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
 

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 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT

  • 1. Bài 6: CÁC CẤU TRÚC DỮ LIỆU ĐẶC BIỆT: NGĂN XẾP, HÀNG ĐỢI, CÂY
  • 2. Nhắc lại bài cũ Tìm hiểu các giải thuật sắp xếp cơ bản trên cấu trúc dữ liệu mảng Tìm hiểu các giải thuật tìm kiếm cơ bản trên cấu trúc dữ liệu mảng Đánh giá và so sánh hiệu quả các giải thuật Slide 6 – Ngăn xếp, Hàng đợi và Cây 2
  • 3. 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 6 – Ngăn xếp, Hàng đợi và Cây 3
  • 4. Khái niệm ngăn xếp Slide 6 – Ngăn xếp, Hàng đợi và Cây 4 Ngăn xếp (Stack): Các phần tử được lưu trữ thành một danh sách liên tiếp nhau. Việc thêm hay loại lấy một phần tử ra khỏi danh sách đều được thực hiện ở một đầu gọi là đỉnh của ngăn xếp. Ví dụ: Chồng sách đặt trên bàn
  • 5. Khái niệm ngăn xếp Slide 6 – Ngăn xếp, Hàng đợi và Cây 5 Stack tuân theo cấu trúc: LIFO (Last In – First Out): Phần tử được đưa vào trong ngăn xếp sau cùng sẽ được lấy ra trước tiên. Phần tử đưa vào trong ngăn xếp trước tiên sẽ được lấy ra sau cùng.
  • 6. Các thao tác trên ngăn xếp Slide 6 – Ngăn xếp, Hàng đợi và Cây 6 Có một số thao tác với ngăn xếp hay được thực hiện Thêm (push) một phần tử vào đỉnh ngăn xếp Lấy (pop) một phần tử từ đỉnh của ngăn xếp Xem (peek) nội dung của phần tử ở đỉnh của ngăn xếp
  • 7. Ví dụ Slide 6 – Ngăn xếp, Hàng đợi và Cây 7 Stack S lưu trữ các kí tự Push (S,A) Push (S,B) Push (S,C) Pop (S,C) Push (S,D) Pop (S,D) Pop (S,B)
  • 8. Ngăn xếp được cài đặt trong VB.Net bằng lớp Stack Lớp Stack là cài đặt giao diện Icollection Lớp Stack cung cấp các phương thức cho phép thực hiện các thao tác trên ngăn xếp như: Push(), Pop(), Peek(), Contains(), … Lớp Stack trong VB.Net Slide 6 – Ngăn xếp, Hàng đợi và Cây 8
  • 9. Khởi tạo ngăn xếp Slide 6 – Ngăn xếp, Hàng đợi và Cây 9 3 cách khởi tạo: Cách 1: Tạo 1 ngăn xếp rỗng mặc định chứa được 10 giá trị Ví dụ: Dim myStack As New Stack() Cách 2: Tạo 1 ngăn xếp từ 1 đối tượng collection khác Ví dụ: Dim names() As String = {"Raymond", "David“,"Mike"} Dim nameStack As New Stack(names) Cách 3: Tạo 1 ngăn xếp và chỉ định luôn dung lượng ngăn xếp Ví dụ: Dim myStack As New Stack(25)
  • 10. Các phương thức lớp Stack Slide 6 – Ngăn xếp, Hàng đợi và Cây 10 Push(): Thêm một phần tử (Item) vào đỉnh ngăn xếp myStack Cú pháp: myStack.Push(Item) Pop(): Lấy phần tử từ đỉnh ngăn xếp myStack Cú pháp: myStack.Pop() -> trả về phần tử ở đỉnh của ngăn xếp Peek(): Xem nội dung phần tử tại đỉnh ngăn xếp myStack Cú pháp: myStack.Peek()
  • 11. Các phương thức lớp Stack Count(): Trả về số phần tử có trong ngăn xếp myStack Cú pháp: myStack.Count() Clear(): Xóa tất cả các phần tử có trong ngăn xếp myStack Cú pháp: myStack.Clear() Contains(): Kiểm tra xem một phần tử Item nào đó có tồn tại trong ngăn xếp myStack không Cú pháp: myStack.Contains(Item) Slide 6 – Ngăn xếp, Hàng đợi và Cây 11
  • 12. Các phương thức lớp Stack CopyTo(): copy nội dung của ngăn xếp myStack vào một mảng myArray bắt đầu từ vị trí index Cú pháp: myStack.CopyTo(myArray, index) ToArray(): copy nội dung của ngăn xếp myStack vào một mảng myArray Cú pháp: myArray = myStack.ToArray() Slide 6 – Ngăn xếp, Hàng đợi và Cây 12
  • 13. Ví dụ sử dụng một số phương thức Slide 6 – Ngăn xếp, Hàng đợi và Cây 13 Imports System.Collections Module Module1 Sub Main() Dim Nums As New Stack() Dim num As Integer Dim x As Integer Dim arrayCopy() As Object Dim myArray() As Object 'Phuong thuc Push() For x = 5 To 20 Step +5 Nums.Push(x) Next ' Phuong thuc Peek() va Pop() If (IsNumeric(Nums.Peek())) Then num = Nums.Pop() Console.WriteLine("Phan tu vua duoc lay ra khoi ngan xep la: " + num) End If
  • 14. Ví dụ sử dụng một số phương thức Slide 6 – Ngăn xếp, Hàng đợi và Cây 14 'Phuong thuc Contains() If (Nums.Contains(10)) Then Console.WriteLine("Gia tri 10 ton tai trong Stack") End If 'Phuong thuc Count() va Clear() If (Nums.Count() = 0) Then Nums.Clear() End If 'Phuong thuc CopyTo() va ToArray() Nums.CopyTo(arrayCopy, 0) myArray = Nums.ToArray() End Sub End Module
  • 15. Ví dụ ứng dụng Stack Slide 6 – Ngăn xếp, Hàng đợi và Cây 15 Ứng dụng stack để đảo ngược danh sách Giải thuật: 1. Lặp lại n lần 1.1. Nhập vào một giá trị 1.2. Đẩy nó vào stack 2. Lặp khi stack chưa rỗng 2.1. Lấy một giá trị từ stack 2.2. In ra
  • 16. Ví dụ ứng dụng Stack Slide 6 – Ngăn xếp, Hàng đợi và Cây 16
  • 17. Khái niệm Hàng đợi (Queue) Slide 6 – Ngăn xếp, Hàng đợi và Cây 17 Hàng đợi (Queue): Các phần tử được lưu trữ thành một danh sách liên tiếp nhau. Việc thêm 1 phần tử vào danh sách được thực hiện ở một đầu (cuối hàng) Việc lấy ra 1 phần tử của danh sách được thực hiện ở đầu khác (đầu hàng) Ví dụ: Dòng người xếp hàng chờ trong siêu thị
  • 18. Khái niệm Hàng đợi (Queue) Slide 6 – Ngăn xếp, Hàng đợi và Cây 18 Hàng đợi tuân theo cấu trúc FIFO (First In – First Out): Các phần tử vào trong hàng đợi trước sẽ được lấy ra trước. 2 13 Thêm vào 1 Lấy ra
  • 19. Các thao tác trên hàng đợi Slide 6 – Ngăn xếp, Hàng đợi và Cây 19 Một số thao tác cơ bản trên queue Bổ sung (enqueue) thêm phần tử vào cuối hàng đợi Lấy (dequeue phần tử ở đầu hàng đợi Xem (peek) nội dung phần tử ở đầu hàng đợi
  • 20. Ví dụ Slide 6 – Ngăn xếp, Hàng đợi và Cây 20 Ví dụ hàng đợi Q lưu trữ các kí tự Bổ sung A, B và C vào cuối hàng đợi Lấy phần tử đầu tiên trong hàng đợi Bổ sung D vào cuối hàng đợi
  • 21. Hàng đợi được cài đặt trong VB.Net bằng lớp Queue Lớp Queue bao gồm các phương thức như: Enqueue(): Bổ sung thêm phần tử vào đuôi của hàng đợi Dequeue(): Lấy một phần tử từ đầu của hàng đợi Peek(): Xem nội dung của phần tử tại đầu của hàng đợi Count(): Trả về số phần tử có trong hàng đợi Clear(): Hủy hàng đợi và tất cả các phần tử có trong hàng đợi Lớp Hàng đợi trong VB.Net Slide 6 – Ngăn xếp, Hàng đợi và Cây 21
  • 22. Có 3 cách: Cách 1: Tạo một hàng đợi rỗng mặc định chứa được 32 phần tử Ví dụ: Dim myQueue As New Queue() Cách 2: Tạo một hàng đợi và chỉ định sẵn dung lượng hàng đợi Ví dụ: Dim myQueue As New Queue(100) Cách 3: Tạo một ngăn xếp và chỉ định tốc độ gia tăng kích thước Ví dụ: Dim myQueue As New Queue(32, 3R) Cách khai báo Hàng đợi Slide 6 – Ngăn xếp, Hàng đợi và Cây 22
  • 23. Các phương thức trong Hàng đợi Slide 6 – Ngăn xếp, Hàng đợi và Cây 23 Enqueue(): Bổ sung phần tử Item vào đuôi của hàng đợi myQueue Cấu trúc: myQueue.Enqueue(Item) Dequeue(): Lấy phần tử từ đầu của hàng đợi myQueue Cấu trúc: myQueue.Dequeue Peek(): Thăm phần tử tại đầu của hàng đợi myQueue Cấu trúc: myQueue.Peek
  • 24. Các phương thức trong Hàng đợi Slide 6 – Ngăn xếp, Hàng đợi và Cây 24 Count: Trả về số phần tử có trong hàng đợi Cấu trúc: myQueue.Count Clear: Hủy hàng đợi và tất cả các phần tử có trong hàng đợi myQueue Cấu trúc: myQueue.Clear
  • 25. Ứng dụng của Hàng đợi Slide 6 – Ngăn xếp, Hàng đợi và Cây 25 Hàng đợi có thể được sử dụng trong một số bài toán: Bài toán ‘sản xuất và tiêu thụ’ (ứng dụng trong các hệ điều hành song song). Bộ đệm lệnh (ví dụ: Nhấn phím ⇒ Bộ đệm ⇒ CPU xử lý). Xử lý các lệnh trong máy tính (ứng dụng trong HĐH, trình biên dịch), hàng đợi các tiến trình chờ được xử lý,
  • 26. Khái niệm Cây (Tree) Slide 6 – Ngăn xếp, Hàng đợi và Cây 26 Cây là tập hợp các phần tử (Nút) và các cạnh được tổ chức như sau: Mỗi nút của cây mang một thông tin nào đó Cách cạnh dùng để liên kết các nút với nhau
  • 27. Khái niệm Cây (Tree) Slide 6 – Ngăn xếp, Hàng đợi và Cây 27
  • 28. Khái niệm Cây (Tree) Slide 6 – Ngăn xếp, Hàng đợi và Cây 28 Các khái niệm liên quan: Nút cha – Nút con: Mỗi nút trong cây có đúng một nút nằm trên nó (nút cha), các nút nằm ngay dưới nó gọi là nút con Nút anh em: các nút nằm cùng cấp Nút lá: Nút không có nút con nào.
  • 29. Khái niệm Cây (Tree) Slide 6 – Ngăn xếp, Hàng đợi và Cây 29 Các khái niệm liên quan: Bậc của nút: là số cây con của nút đó Bậc của cây: là bậc lớn nhất của các nút trong cây Mức của nút: mức của nút gốc cây con chứa nó cộng thêm 1, trong đó mức của nút gốc = 0. Chiều cao của cây: là mức cao nhất của các nút trong cây Chiều dài đường đi của một nút: là tổng số nút tính từ nút gốc để đi đến nút đó.
  • 30. Cây nhị phân Slide 6 – Ngăn xếp, Hàng đợi và Cây 30 Cây nhị phân là cây đặc biệt mà mỗi nút của nó chỉ có nhiều nhất 2 nút con. Khi đó, 2 cây con của mỗi nút được gọi là cây con trái và cây con phải Cây nhị phân Cây nhị phân đầy đủ
  • 31. Cây nhị phân tìm kiếm Slide 6 – Ngăn xếp, Hàng đợi và Cây 31 Là cây nhị phân có tính chất: Khóa của nút con bên trái bao giờ cũng nhỏ hơn khóa của nút cha Khóa của nút con bên phải bao giờ cũng lớn hơn khóa của nút cha. Ví dụ
  • 32. Là thao tác thăm tất cả các nút của cây, mỗi nút đúng một lần. 3 phương pháp duyệt: Duyệt theo thứ tự trước Duyệt theo thứ tự giữa Duyệt theo thứ tự cuối Phương pháp đệ qui được ứng dụng để cài đặt các phương pháp duyệt trên Duyệt cây nhị phân Slide 6 – Ngăn xếp, Hàng đợi và Cây 32
  • 33. Duyệt cây nhị phân Slide 6 – Ngăn xếp, Hàng đợi và Cây 33 Ví dụ duyệt theo thứ tự giữa: Duyệt cây gốc 16, Thăm 23, Duyệt cây gốc 45 Thứ tự duyệt: 3, 16, 22, 23, 27, 45, 99
  • 34. Ứng dụng cây nhị phân Slide 6 – Ngăn xếp, Hàng đợi và Cây 34 Ứng dụng để giải bài toán tìm kiếm kiểu nhị phân và duyệt cây theo thứ tự giữa.
  • 35. Tổng kết Slide 6 – Ngăn xếp, Hàng đợi và Cây 35 Ngăn xếp là danh sách các phần tử mà việc thêm vào hay lấy ra các phần tử chỉ thực hiện ở Đỉnh ngăn xếp. Hàng đợi là danh sách các phần tử mà việc thêm phần tử được thực hiện ở cuối hàng, việc lấy ra phần tử thực hiện ở đầu hàng. Cây là cấu trúc mà các phần tử đóng vai trò là các Nút của cây. Có 3 cách khác nhau để duyệt các phần tử của cây.