Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 54 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
54
Dung lượng
259 KB
Nội dung
Chương 4 CẤU TRÚC CÂY 2/54 NỘI DUNG Các khái niệm cơ bản Cây nhị phân Cây tổng quát 3/54 4.1 CÁC KHÁI NIỆM CƠ BẢN Định nghĩa cây Cấp của cây Mức của cây Đường đi và độ dài đường đi trong cây Độ cao, độ sâu của nút trong cây Thứ tự các nút trong cây Phép duyệt cây Cây gán nhãn và cây biểu thức 4/54 4.1.1 Định nghĩa cây Cây là tập hợp hữu hạn các nút trong đó có một nút đặc biệt gọi là gốc của cây(root). Các nút có mối quan hệ phân cấp gọi là quan hệ ‘’cha-con’’ Định nghĩa đệ qui về cây Một nút là một cây gốc của cây chính là nút đó. Giả sử T 1 , T 2 , …, T n (n ≥ 1) là các cây có gốc tương ứng r 1 , r 2 ,…, r n . Khi đó cây T với gốc r được hình thành bằng cách cho r trở thành nút cha của các nút r 1 , r 2 , …, r n 5/54 4.1.1 Định nghĩa cây T T1 T2 … Tn r r2 rn r1 6/54 4.1.2 Cấp của cây Cấp của nút trong cây là số con của nút Cấp của cây: Là cấp cao nhất của nút có trong cây. Cây có cấp n thì gọi là cây n - phân 7/54 4.1.3 Mức của cây Gốc của cây có mức là 1 Cha có mức là i thì con có mức là i+1 Mức của cây là mức cao nhất của nút có trong cây 8/54 4.1.4 Đường đi và độ dài đường đi Dãy các nút n 1 , n 2 , , n k được gọi là một đường đi trong cây T nếu n i là cha của n i+1 (1 ≤ i < k) có độ dài là k-1 Nếu có một đường đi từ A đến B trong cây T thì A được gọi là tiền thân của B, B được gọi là hậu thế của A Trong một cây, gốc là nút không có tiền thân, lá là nút không có hậu thế 9/54 4.1.5 Độ cao và độ sâu của nút Độ cao của một nút trong cây là số nút trong đường đi dài nhất từ nút đó tới lá Độ cao của cây là độ cao của nút gốc Độ sâu của một nút trong cây là số nút trong đường đi từ gốc tới nút đó 10/54 4.1.6 Thứ tự các nút trong cây Trong cây nếu nút n có các con là n 1, n 2 , , n k thì n i (1<=i<=k) là các nút anh em n 1 là con bên trái cùng hay con trưởng n k là con bên phải cùng hay con út n i (1<=i<k) là anh em liền kề bên trái của n i+1 n i (1<i<=k) là anh em liền kề bên phải của n i-1 [...]... trước (preorder) Duyệt cây theo thứ tự giữa (inorder) Duyệt cây theo thứ tự sau (postorder ) 12/54 4.1.7 Phép duyệt cây Duyệt cây theo thứ tự trước (preorder) Nếu cây khác rỗng Thăm gốc Duyệt cây con trái cùng theo thứ tự trước Duyệt các cây con còn lại theo thứ tự trước 13/54 4.1.7 Phép duyệt cây Duyệt cây theo thứ tự giữa (inorder) Nếu cây khác rỗng Duyệt cây con trái cùng theo thứ... Duyệt các cây con còn lại theo thứ tự giữa 14/54 4.1.7 Phép duyệt cây Duyệt cây theo thứ tự sau (postorder) Nếu cây khác rỗng Duyệt cây con trái cùng theo thứ tự sau Duyệt các cây con còn lại theo thứ tự sau Thăm gốc 15/54 4.1.7 Phép duyệt cây A B E F C G H D I K Thứ tự trước : ABEFGCHDIK Thứ tự giữa : EBFGAHCIDK Thứ tự sau : EFGBHCIKDA 16/54 4.1.8 Cây gán nhãn và cây biểu thức Cây gán nhãn... Thứ tự các nút trong cây Trong cây nếu không tính tới thứ tự của các nút gọi là cây không có thứ tự T1 B T2 A C A C Nếu là các cây có thứ tự thì T1T2 B Nếu là các cây không có thứ tự thì T1=T2 11/54 4.1.7 Phép duyệt cây Là phép thăm các nút trong cây một cách hệ thống sao cho tất cả các nút đều được thăm và được thăm đúng một lần Có 3 cách duyệt cây cơ bản : Duyệt cây theo thứ tự trước... trong cây được gán với một nhãn Cây biểu thức : Mỗi nút trong cây được gán với một thành phần của biểu thức theo cách Mỗi nút lá được gán với một toán hạng Mỗi nút trong được gán với một toán tử 17/54 4.1.8 Cây gán nhãn và cây biểu thức Ví dụ cây biểu thức P = a*(b - c) + d/e + / * a - b d e c Duyệt theo thứ tự trước : Duyệt theo thứ sau : +*a-bc/de abc-*de/+ 18/54 4.1.8 Cây gán nhãn và cây. .. phân biệt con bên trái và con bên phải của nút Là cây có thứ tự Các dạng cây nhị phân đặc biệt Cây nhị phân suy biến 22/54 4.2.1 Khái niệm, đặc điểm, tính chất Các dạng cây nhị phân đặc biệt Cây nhị phân hoàn chỉnh : Các mức đều đạt tối đa số nút trừ mức cao nhất trong cây 23/54 4.2.1 Khái niệm, đặc điểm, tính chất Các dạng cây nhị phân đặc biệt Cây nhị phân hoàn chỉnh đầy đủ : Các mức đều đạt... phải của nút Cây là con trỏ trỏ vào nút gốc 29/54 4.2.2 Biểu diễn cây nhị phân Ví dụ A B NULL D NULL NULL C E NULL NULL F NULL NULL G NULL Nhận xét : Cây nhị phân có n nút thì có 2*n con trỏ Trong đó n-1 con trỏ khác NULL n+1 con trỏ NULL 30/54 4.2.3 Cây nhị phân tìm kiếm Định nghĩa, khai báo cấu trúc dữ liệu Các phép toán cơ bản 31/54 Định nghĩa cây nhị phân tìm kiếm Là cây nhị phân... khóa của nút con bên phải 32/54 Khai báo cấu trúc dữ liệu struct node { key ; node *left, *right ; } *t; 33/54 Các phép toán cơ bản Khởi tạo cây t rỗng : creat(t) Kiểm tra cây t rỗng : empty(t) Chèn khóa x vào cây t : insert(x,t) Loại khóa x trong cây t : del(x,t) Duyệt cây t theo 3 cách duyệt cơ bản 34/54 Các phép toán cơ bản Khởi tạo cây t rỗng : creat(t) void creat(node *&t)... điểm, tính chất Trong cây nhị phân Số lượng nút tối đa ở mức i là 2i-1 Số lượng nút tối đa ở cây nhị phân mức i 2i – 1 Trong các cây nhị phân có cùng số nút thì cây nhị phân suy biến có chiều cao lớn nhất, cây nhị phân hoàn chỉnh, hoàn chỉnh đầy đủ có chiều cao nhỏ nhất 25/54 4.2.2 Biểu diễn cây nhị phân Biểu diễn bằng mảng Biểu diễn bằng con trỏ 26/54 4.2.2 Biểu diễn cây nhị phân Biểu diễn... phần của biểu thức tiền tố 19/54 4.1.8 Cây gán nhãn và cây biểu thức Ví dụ : + * a – b c / d e Toán hạng đọc b c e a d b-c * * + a =kq1 + a*kq1 =kq2 / kq2 + d/e =kq3 kq2+kq3 kq2 + =kq 20/54 4.2 CÂY NHỊ PHÂN Khái niệm, đặc điểm, tính chất Biểu diễn cây nhị phân Cây nhị phân tìm kiếm 21/54 4.2.1 Khái niệm, đặc điểm, tính chất Là dạng đặc biệt của cây Mỗi nút trong có tối đa 2 con, phân... một chiều làm cấu trúc lưu trữ Cách 1 : Gốc lưu ở vị trí 0, cha lưu ở vị trí i thì con trái lưu ở vị trí 2*i+1, con phải lưu ở vị trí 2*i+2 Các cách khác : (Giới thiệu trong biểu diễn cây tổng quát Ví dụ : 27/54 4.2.2 Biểu diễn cây nhị phân A Biểu diễn bằng mảng B C ∅ D A B 0 1 D C 2 3 4 5 6 E 7 … 15 … 28/54 4.2.2 Biểu diễn cây nhị phân Biểu diễn bằng con trỏ Mỗi nút trong cây là một bản . Chương 4 CẤU TRÚC CÂY 2/54 NỘI DUNG Các khái niệm cơ bản Cây nhị phân Cây tổng quát 3/54 4.1 CÁC KHÁI NIỆM CƠ BẢN Định nghĩa cây Cấp của cây Mức của cây Đường. độ dài đường đi trong cây Độ cao, độ sâu của nút trong cây Thứ tự các nút trong cây Phép duyệt cây Cây gán nhãn và cây biểu thức 4/54 4.1.1 Định nghĩa cây Cây là tập hợp hữu hạn. Cấp của cây Cấp của nút trong cây là số con của nút Cấp của cây: Là cấp cao nhất của nút có trong cây. Cây có cấp n thì gọi là cây n - phân 7/54 4.1.3 Mức của cây Gốc của cây có mức