#BST0000005. Ba kiểu duyệt và duyệt theo mức (Three DFS Traversals and Level Order)
Ba kiểu duyệt và duyệt theo mức (Three DFS Traversals and Level Order)
Ba kiểu duyệt và duyệt theo mức (Three DFS Traversals and Level Order)
Nguồn: Phước Hưng OJ
Phiên bản: Phước Hưng OJ Extended
Đề bài
Dựng BST từ dãy khóa theo đúng thứ tự chèn; khóa trùng bị bỏ qua.
Sau khi dựng cây, hãy in bốn thứ tự duyệt của cùng cây đó:
- preorder: gốc - trái - phải;
- inorder: trái - gốc - phải;
- postorder: trái - phải - gốc;
- level-order: thăm các nút theo từng mức từ trên xuống dưới; trong cùng một nút, con trái được đưa vào trước con phải.
Input
Dòng đầu chứa số nguyên .
Nếu , dòng tiếp theo chứa số nguyên theo thứ tự chèn. Nếu , không có dòng chứa dãy khóa.
Output
In đúng bốn dòng theo thứ tự sau:
Dòng 1 là preorder.
Dòng 2 là inorder.
Dòng 3 là postorder.
Dòng 4 là level-order.
Trên mỗi dòng, các khóa cách nhau bởi một dấu cách. Nếu cây rỗng, cả bốn dòng đều là EMPTY.
Subtask
Subtask 1 (20 điểm): .
Subtask 2 (30 điểm): .
Subtask 3 (50 điểm): .
Trong tất cả các subtask, . Khóa trùng bị bỏ qua khi dựng cây.
Ví dụ
Input
7
8 3 10 1 6 14 4
Output
8 3 1 6 4 10 14
1 3 4 6 8 10 14
1 4 6 3 14 10 8
8 3 10 1 6 14 4
Giải thích
Khóa là gốc; và là hai con của gốc. Từ cùng cấu trúc cây, preorder thăm gốc trước, inorder thăm gốc giữa hai cây con, postorder thăm gốc sau cùng, còn level-order đi lần lượt theo từng mức.
Vì vậy bốn dòng output lần lượt là bốn thứ tự duyệt được yêu cầu.