1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng toán rời rạc phần các phương pháp duyệt cây

30 694 0

Đ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

Định dạng
Số trang 30
Dung lượng 166 KB

Nội dung

Các thuật toán duyệt cây• Duyệt cây theo kiểu tiền thứ tự... Duyệt kiểu tiền thứ tự • procedure preorderT: cây có gốc và được sắp... Các thuật toán duyệt cây• Duyệt cây theo kiểu trung t

Trang 1

8.3 Các phương pháp duyệt cây

Tài liệu này được soạn theo sách Toán học rời rạc ứng dụng trong tin học, K H

Rosen, người dịch: Phạm Văn Thiều và Đặng Hữu Thịnh, Nhà xuất bản Khoa học

và kỹ thuật, 1998.

Tài liệu lưu hành nội bộ

Trang 2

Hệ địa chỉ phổ dụng

Hệ địa chỉ phổ dụng là cách gán nhãn cho tất cả các đỉnh bằng

phương pháp truy hồi như sau:

– Gán nhãn cho gốc bằng số nguyên 0 Sau đó k đỉnh con của nó (ở mức 1) từ trái sang phải được gán các nhãn là 1, 2, 3,…, k.

– Với mọi đỉnh v ở mức n có nhãn là A, thì k v đỉnh con của nó từ

trái sang phải được gán các nhãn là A.1, A.2,…, A.k v

Nhận xét: Theo thủ tục này, đỉnh v ở mức n, với n  1, có nhãn là

x1.x2…x n , trong đó đỉnh x i ở mức i.

• Ứng dụng: sắp tất cả các đỉnh của cây theo thứ tự từ điển của các nhãn của chúng trong hệ địa chỉ phổ dụng

Trang 3

Hệ địa chỉ phổ dụng

• Ví dụ 1 Gán nhãn theo địa chỉ phổ dụng cho tất cả các đỉnh của cây sau Thứ tự từ điển của các nhãn là: 0 < 1 < 1.1 < 1.2 < 1.3 < 2 < 3 < 3.1 < 3.1.1 < 3.1.2 < 3.1.2.1 < 3.1.2.2 < 3.1.2.3 < 3.1.2.4 < 3.1.3 < 3.2 < 4 < 4.1 <

Trang 4

Các thuật toán duyệt cây

Định nghĩa 1 Giả sử T là cây có gốc và được sắp thứ tự với gốc r.

– Nếu T chỉ có r thì r là cách duyệt tiền thứ tự của T;

– nếu không thì gọi T1, T2,…, T n là các cây con tại r từ trái qua phải của T.

° Duyệt tiền thứ tựï sẽ viếng thăm r đầu tiên;

° tiếp tục duyệt T1 theo kiểu tiền thứ tự, sau đó duyệt T2 theo

kiểu tiền thứ tự,… cho đến khi T n được duyệt theo kiểu tiền thứ tự

Trang 5

Các thuật toán duyệt cây

• Duyệt cây theo kiểu tiền thứ tự

Trang 6

Các thuật toán duyệt cây

• Ví dụ 2 Duyệt kiểu tiền thứ tự sẽ viếng thăm các đỉnh của cây có gốc và được sắp dưới đây theo thứ tự nào?

a

d

g

i h m l

o

f

b e j

c

k

Trang 7

Các thuật toán duyệt cây

• Ví dụ 2 (tiếp theo)

k

d

g

i h m l

c

o

e j

k

m l

d c

Trang 8

Các thuật toán duyệt cây

• Thuật toán 1 Duyệt kiểu tiền thứ tự

procedure preorder(T: cây có gốc và được sắp)

Trang 9

Các thuật toán duyệt cây

Định nghĩa 2 Giả sử T là cây có gốc và được sắp thứ tự với gốc r.

– Nếu T chỉ có r thì r là cách duyệt trung thứ tự của T;

– nếu không, thì gọi T1, T2,…, T n là các cây con tại r từ trái qua

phải của T,

° duyệt trung thứ tựï sẽ bắt đầu bằng việc duyệt T1 theo kiểu trung thứ tựï,

° sau đó viếng thăm r,

° tiếp tục duyệt T2 theo kiểu trung thứ tự, tiếp tục duyệt T3

theo kiểu trung thứ tự,… cho đến khi T n được duyệt theo kiểu trung thứ tự

Trang 10

Các thuật toán duyệt cây

• Duyệt cây theo kiểu trung thứ tự

Trang 11

Các thuật toán duyệt cây

• Ví dụ 3 Duyệt trung thứ tự sẽ viếng thăm các đỉnh của cây có gốc và được sắp dưới đây theo thứ tự nào?

a

d

g

i h m l

o

f

b e j

c

k

Trang 12

Các thuật toán duyệt cây

• Ví dụ 3 (tiếp theo)

l

d

g

i h m l

o

f

b e

j

k

l o

e j

Trang 13

Các thuật toán duyệt cây

• Thuật toán 2 Duyệt kiểu trung thứ tự

procedure inorder(T: cây có gốc và được sắp);

r := gốc của T

if r là lá then liệt kê r

else

begin

l := con đầu tiên từ trái sang phải của r

T(l) := cây con với gốc l

inorder(T(l))

liệt kê r

for mỗi cây con c của r từ trái sang phải trừ l

T(c) := cây con với gốc c inorder(T(c))

Trang 14

Các thuật toán duyệt cây

Định nghĩa 3 Giả sử T là cây có gốc và được sắp thứ tự với gốc r.

– Nếu T chỉ có r thì r là cách duyệt hậu thứ tự của T;

– nếu không, thì gọi T1, T2,…, T n là các cây con tại r từ trái qua

phải của T,

° duyệt hậu thứ tựï sẽ bắt đầu bằng việc duyệt T1 theo kiểu hậu

thứ tựï, tiếp tục duyệt T2 theo kiểu hậu thứ tự,,… cho đến khi

T n được duyệt theo kiểu hậu thứ tự

° cuối cùng viếng thăm r.

Trang 15

Các thuật toán duyệt cây

• Duyệt cây theo kiểu hậu thứ tự

Trang 16

Các thuật toán duyệt cây

• Ví dụ 4 Duyệt kiểu hậu thứ tự sẽ viếng thăm các đỉnh của cây có gốc và được sắp dưới đây theo thứ tự nào?

a

d

g

i h m l

o

f

b e j

c

k

Trang 17

Các thuật toán duyệt cây

• Ví dụ 4 (tiếp theo)

o

f

b e

a

o

e j

k

m l

Trang 18

Các thuật toán duyệt cây

• Thuật toán 3 Duyệt kiểu hậu thứ tự

procedure postorder(T: cây có gốc và được sắp)

r := gốc của T for mỗi cây con c của r từ trái sang phải

Trang 19

Các ký pháp trung tố, tiền tố và hậu tố

• Biểu thức số học chứa các toán tử , , , ,  (luỹ thừa)

– Dùng dấu ngoặc để biểu thị thứ tự các phép toán

– Biểu diển biểu thức bằng cây có gốc và được sắp:

° đỉnh trong biểu thị các phép toán,

° lá biểu thị các số hay các biến,

° mỗi phép toán tác động lên các cây con bên trái và bên phải (theo thứ tự này)

Trang 20

Các ký pháp trung tố, tiền tố và hậu tố

• Ví dụ 5 Tìm cây có gốc biểu diễn biểu thức

/ 3

 2 +

/ 3

+

Trang 21

Các ký pháp trung tố, tiền tố và hậu tố

– Nhận được dạng trung tố của biểu thức khi duyệt cây có gốc

theo kiểu trung thứ tự và dùng các dấu ngoặc mỗi khi gặp một phép toán

Trang 22

Các ký pháp trung tố, tiền tố và hậu tố

Duyệt kiểu trung tố các cây nhị phân trên đều dẫn tới biểu

thức trung tố x + y / x + 3 Cần dùng ngoặc đơn trong cách

duyệt trung thứ tự mỗi khi gặp một phép toán!

Trang 23

Các ký pháp trung tố, tiền tố và hậu tố

– Nhận được dạng tiền tố của biểu thức khi duyệt cây có gốc theo

kiểu tiền thứ tự

– Biểu thức dưới dạng tiền tố được gọi là ký pháp Ba lan.

Trang 24

Các ký pháp trung tố, tiền tố và hậu tố

Ví dụ 6 Dạng tiền tố của biểu thức ((x + y)  2) + ((x  4) / 3)

– Duyệt cây nhị phân biểu diển biểu thức trên theo kiểu tiền thứ tự

  Dạng tiền tố:    x y    x  

Trang 25

Các ký pháp trung tố, tiền tố và hậu tố

• Ví dụ 7 Tính giá trị của biểu thức tiền tố

   * 2 3 5     

  * 2 3 5         = 8

  * 2 3 5  8 

8   = 2

  * 2 3 5   *  = 6

  6 5 2

6  5 = 1

 1 2

1 + 2 = 3

Trang 26

Các ký pháp trung tố, tiền tố và hậu tố

– Nhận được dạng hậu tố của một biểu thức bằng cách duyệt cây

nhị phân theo kiểu hậu thứ tự

– Biểu thức dưới dạng hậu tố được gọi là ký pháp Ba lan ngược.

Trang 27

Các ký pháp trung tố, tiền tố và hậu tố

Ví dụ 8 Dạng hậu tố của biểu thức ((x + y)  2) + ((x  4) / 3)

– Duyệt cây nhị phân biểu diển biểu thức trên theo kiểu hậu thứ tự

  Dạng hậu tố: x y    x     

Trang 28

Các ký pháp trung tố, tiền tố và hậu tố

• Ví dụ 9 Tìm giá trị của biểu thức hậu tố

Trang 29

Các ký pháp trung tố, tiền tố và hậu tố

• Ví dụ 10 Cây có gốc và được sắp biểu diễn mệnh đề logic phức

Trang 30

Các ký pháp trung tố, tiền tố và hậu tố

– Dạng tiền tố

  p q  p q– Dạng hậu tố

Ngày đăng: 01/10/2015, 14:08

TỪ KHÓA LIÊN QUAN

w