CÁC PHÉP DUYỆT CÂY ỨNG DỤNG CÂY VÀO MÃ HÓA THÔNG TIN

Một phần của tài liệu Bài giảng toán rời rạc ths nguyễn thị thúy hạnh (Trang 63 - 65)

Các thủ tục viếng thăm một cách có hệ thống tất cả các đỉnh của một cây có gốc và đƣợc sắp thứ tự (tức là các đỉnh anh em có cùng cha đã đƣợc sắp thứ tự từ trái qua phải), đƣợc gọi là

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

Định nghĩa: Cho T = T(r) là một cây có gốc và được sắp thứ tự với gốc r. Gọi T1, T2, …, Tn

là các cây con tại r của T theo thứ tự từ trái qua phải. Có 3 thuật toán duyệt cây T đƣợc sử dụng thƣờng xuyên nhất là: Duyệt tiền thứ tự, Duyệt trung thứ tự, Duyệt hậu thứ tự. Mỗi thuật toán đƣợc thực hiện lần lƣợt qua n+1 bƣớc theo thứ tự liệt kê sau đây:

(1) Duyt tin th t:Thăm gốc r / Duyệt cây con T1/…/ Duyệt cây con Tn.

(2) Duyt trung th t: Duyệt cây con T1 / Thăm gốc r / Duyệt cây con T2 / Duyệt cây con T3/ …/ Duyệt cây con Tn.

(3) Duyt hu th t: Duyệt cây con T1/ …/ Duyệt cây con Tn/ Thăm gốc r.

Ví dụ 1: Hãy duyệt cây có gốc T0 trong Hình 4.3a theo thuật toán duyệt tiền thứ tự, duyệt hậu thứ tự, duyệt trung thứ tự.

Giải.Các đỉnh được viếng thăm lần lượt là:

Duyệt tiền thứ tự g, d, e, c, a, b, f, h, k, i, o, m, n, p ,q, x, y, z.

Duyệt trung thứ tự d, g, a, c, b, e, f, i, k, o,h, n, m, q, p, z, x, y.

Duyệt hậu thứ tự d, a, b, c, f, e, i, o, k, n, q, z, y, x, p, m, h, g.

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

Ta có thể biểu diễn các biểu thức phức tạp bằng cây nhị phân và đƣợc sắp thứ tự. Trong đó, các đỉnh trong biểu thị các phép toán (toán tử) và các lá biểu thị các số hay các biến (toán hạng).

Ví dụ 2:

(A) (B)

Hình 4.6. Cây nhị phân biểu diễn biểu thức ( )

Duyệt cây nhị phân biểu diễn biểu thức AB theo thuật toán duyệt trung thứ tự ta đều thu đƣợc biểu thức (gọi là dạng trung tố) . Để cho rõ ràng và tạo ra biểu thức có các toán hạng và các toán tử theo thứ tự đúng nhƣ là đã có trong biểu thức ban đầu thì trong dạng trung tố này cần thêm ngoặc đơn. Chẳng hạn, để thu đƣợc biểu thức Athì ta cần thêm ngoặc mỗi khi gặp một phép toán: ( ) ( ) .

Bằng cách duyệt cây nhị phân biểu diễn biểu thức này theo thuật toán duyệt tiền thứ tự, duyệt hậu thứ tự ta thu đƣợc dạng tiền tốdạng hậu tốcủa biểu thức ban đầu.

Ta gọi, dạng tiền tố và dạng hậu tố của một biểu thức lần lƣợt là ký pháp Ba Lan ký pháp

Ba Lan ngược. Các biểu thức dƣới dạng ký pháp Ba Lan và ký pháp Ba Lan ngƣợc là

ràng (không mập mờ)vì vậy không cần thêm ngoặc.

Ví dụ 3: Tìm ký pháp Ba Lan và ký pháp Ba Lan ngược của hai biểu thức A, B trong Ví dụ 2.

Giải. Ký pháp Ba Lan của biểu thức A, B là các biểu thức dạng tiền tố:

fA(x, y) = ; fB(x, y) =

Ký pháp Ba Lan ngược của biểu thức A, B là các biểu thức dạng hậu tố:

gA(x, y) = ; gB(x, y) = .

Trong dạng tiền tố ta đánh giá biểu thức từ phải sang trái, khi gặp một toán tử ta thực hiện phép toán tƣơng ứng với hai toán hạng đi liền bên phải của toán tử này.

Để đánh giá biểu thức trong dạng hậu tố, ta phải tiến hành từ trái sang phải và thực hiện một phép toán mỗi khi có một toán tử đi sau hai toán hạng. (Mỗi kết quả của phép toán vừa thực hiện tiếp tục đƣợc coi nhƣ là một toán hạng mới).

Ví dụ 4 : Tính giá trị của biểu thức tiền tố C và biểu thức hậu tố D sau :

; . (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Bài giảng toán rời rạc ths nguyễn thị thúy hạnh (Trang 63 - 65)