BÀI TẬP CHƯƠNG

Một phần của tài liệu Chương 5: Cấu trúc dữ liệu Cây (tree) pptx (Trang 49 - 51)

5.1. Một cõy nhị phõn được gọi là cõy nhị phõn đỳng nếu node gốc của cõy và cỏc node trung gian đều cú hai node con (ngoại trừ node lỏ). Chứng minh rằng, nếu cõy nhị phõn đỳng cú n node lỏ thỡ cõy này cú tất cả 2n-1 node. Hóy tạo lập một cõy nhị phõn bất kỳ, sau đú kiểm tra xem nếu cõy khụng phải là cõy nhị phõn đỳng hóy tỡm cỏch bổ sung vào một số node để cõy trở thành cõy hoàn toàn đỳng. Làm tương tự như trờn với thao tỏc loại bỏ node.

5.2. Một cõy nhị phõn được gọi là cõy nhị phõn đầy với chiều sõu d (d nguyờn dương) khi và chỉ khi ở mức i (0≤i≤d) cõy cú đỳng 2i node. Hóy viết chương trỡnh kiểm tra xem một cõy nhị phõn cú phải là một cõy đầy hay khụng? Nếu cõy chưa phải là cõy nhị phõn đầy, hóy tỡm cỏch bổ xung một số node vào cõy nhị phõn để nú trở thành cõy nhị phõn đầy.

5.3. Một cõy nhị phõn được gọi là cõy nhị phõn gần đầy với độ sõu d nếu với mọi mức i (0≤i≤d-1) nú cú đỳng 2i node. Cho cõy nhị phõn bất kỳ, hóy kiểm tra xem nú cú phải là cõy nhị phõn gần đầy hay khụng ?

5.4. Hóy xõy dựng cỏc thao tỏc sau trờn cõy nhị phõn: - Tạo lập cõy nhị phõn;

- Đếm số node của cõy nhị phõn; - Xỏc định chiều sõu của cõy nhị phõn; - Xỏc định số node lỏ của cõy nhị phõn;

- Xỏc định số node trung gian của cõy nhị phõn; - Xỏc định số node trong từng mức của cõy nhị phõn;

- Xõy dựng tập thao tỏc tương tự như trờn đối với cỏc nhỏnh cõy con; - Thờm một node vào node phải của một node;

- Thờm node vào node trỏi của một node; - Loại bỏ node phải của một node;

- Loại bỏ node trỏi của một node; - Loại bỏ cả cõy;

- Duyệt cõy theo thứ tự trước; - Duyệt cõy theo thứ giữa; - Duyệt cõy theo thứ tự sau;

5.5. Cho file dữ liệu cay.in được tổ chức thành từng dũng, trờn mỗi dũng ghi lại một từ là nội dung node của một cõy nhị phõn tỡm kiếm. Hóy xõy dựng cỏc thao tỏc sau cho cõy nhị phõn tỡm kiếm:

Tạo lập cõy nhị phõn tỡm kiếm với node gốc là từ đầu tiờn trong file dữ liệu cay.in. - Xỏc định số node trờn cõy nhị phõn tỡm kiếm;

- Xỏc định chiều sõu của cõy nhị phõn tỡm kiếm; - Xỏc định số node nhỏnh cõy bờn trỏi;

- Xỏc định số node nhỏnh cõy con bờn phải; - Xỏc định số node trung gian;

- Xỏc định số node lỏ;

- Tỡm node cú độ dài lớn nhất; - Thờm node;

- Loại bỏ node; - Loại bỏ cả cõy;

- Duyệt cõy theo thứ tự trước; - Duyệt cõy theo thứ tự giữa; - Duyệt cõy theo thứ tự sau;

5.6. Cho cõy nhị phõn bất kỳ hóy xõy dựng chương trỡnh xỏc định xem: - Cõy cú phải là cõy nhị phõn đỳng hay khụng?

- Cõy cú phải là cõy nhị phõn đầy hay khụng ? - Cõy cú phải là cõy nhị phõn gần đầy hay khụng?

- Cõy cú phải là cõy nhị phõn hoàn toàn cõn bằng hay khụng? - Cõy cú phải là cõy nhị phõn tỡm kiếm hay khụng ?

5.7. Cho tam giỏc số được biểu diễn như hỡnh dưới đõy. Hóy viết chương trỡnh tỡm dóy cỏc số cú tổng lớn nhất trờn con đường từ đỉnh và kết thỳc tại đõu đú ở đỏy. Biết rằng, mỗi bước đi cú thể đi chộo xuống phớa trỏi hoặc chộo xuống phớa phải. Số lượng hàng trong tam giỏc là lớn hơn 1 nhưng nhỏ hơn 100; cỏc số trong tam giỏc đều là cỏc số từ 0 . .99.

7

3 8

8 1 0

2 7 4 4

4 5 2 6 5

Dữ liệu vào cho bởi file cay.in, dũng đầu tiờn ghi lại số tự nhiờn n là số lượng hàng trong tam giỏc, n hàng tiếp theo ghi lại từng hàng mỗi phần tử được phõn biệt với nhau bởi

một hoặc vài dấu trống. Kết quả ghi lại trong file cay.out dũng đầu tiờn ghi lại tổng số lớn nhất tỡm được, dũng kế tiếp ghi lại dóy cỏc số cú tổng lớn nhất. Vớ dụ với hỡnh trờn file input & output như sau:

cay.in 5 7 2 8 8 1 0 2 7 4 4 4 5 2 6 5 cay.out 30 7 3 8 7 5

5.8. Cho cõy nhị phõn số hoàn toàn cõn bằng:(số node bờn nhỏnh cõy con bờn trỏi đỳng bằng số node nhỏnh cõy con bờn phải, ở mức thứ i cú đỳng 2i node) như hỡnh sau: (adsbygoogle = window.adsbygoogle || []).push({});

Hóy tỡm dóy cỏc node xuất phỏt từ gốc tới một node lỏ nào đú sao cho tổng giỏ trị của cỏc node là lớn nhất, biết rằng mỗi bước đi chỉ được phộp đi chộo sang node trỏi hoặc chộo theo node phải. Dữ liệu vào cho bởi file cay.in, dũng đầu tiờn ghi lại số tự nhiờn n ≤50 là số cỏc mức của cõy, n dũng kế tiếp mỗi dũng ghi lại dóy cỏc số là cỏc node trờn mỗi mức. Kết quả ghi lại trong file cay.out theo thứ tự, dũng đầu là tổng lớn nhất của hành trỡnh, dũng kế tiếp là dóy cỏc node trong hành trỡnh. Vớ dụ: với hỡnh trờn file input & output được tổ chức như sau: cay.in 3 7 9 2 0 6 3 1 cay.out 22 7 9 6 7 9 2 0 6 3 1

Một phần của tài liệu Chương 5: Cấu trúc dữ liệu Cây (tree) pptx (Trang 49 - 51)