1. Trang chủ
  2. » Công Nghệ Thông Tin

bài 6 các cấu trúc dữ liệu đặc biệt ngăn xếp, hàng đợi, cây

35 1,7K 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài 6 Các Cấu Trúc Dữ Liệu Đặc Biệt Ngăn Xếp, Hàng Đợi, Cây
Thể loại Bài giảng
Định dạng
Số trang 35
Dung lượng 1,18 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các thao tác trên ngăn xếpSlide 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

Trang 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

Trang 2

Đá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

Trang 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

Trang 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

Trang 5

Khái niệm ngăn xếp

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 ratrước tiên

Phần tử đưa vào trong ngăn xếp trước tiên sẽ được lấy ra saucùng

Trang 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

Trang 7

Ví dụ

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)

Trang 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

Trang 9

Khởi tạo ngăn xếp

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)

Trang 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()

Trang 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

Trang 13

Ví dụ sử dụng một số phương thứcImports 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

Trang 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()

Trang 15

2 Lặp khi stack chưa rỗng

2.1 Lấy một giá trị từ stack2.2 In ra

Trang 16

Ví dụ ứng dụng Stack

Slide 6 – Ngăn xếp, Hàng đợi và Cây 16

Trang 17

Khái niệm Hàng đợi (Queue)

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ị

Trang 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

Trang 19

Các thao tác trên hàng đợi

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

Trang 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

Trang 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

Trang 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

Trang 23

Các phương thức trong Hàng đợi

Enqueue(): Bổ sung phần tử Item vào đuôi của hàng đợi myQueueCấ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

Trang 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

Trang 25

Ứng dụng của Hàng đợi

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ànhsong 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êndịch), hàng đợi các tiến trình chờ được xử lý,

Trang 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

Trang 27

Khái niệm Cây (Tree)

Trang 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ằmtrê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

Trang 29

Khái niệm Cây (Tree)

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 đó

Trang 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 2nú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

Trang 31

Cây nhị phân tìm kiếm

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 chaKhó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ụ

Trang 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

Trang 33

Duyệt cây nhị phân

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

Trang 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.

Trang 35

Tổng kết

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

được thực hiện ở cuối hàng, việc lấy ra phần tử thực hiện

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.

Ngày đăng: 23/05/2014, 16:49

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w