Xoá nút khỏi BST
Xem dưới dạng PDF
Gửi bài giải
Điểm:
20
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Bình có một BST được tạo từ một dãy số nguyên dương phân biệt. Bình muốn thực hiện \(Q\) thao tác xoá một giá trị khỏi BST. Sau mỗi thao tác xoá, hãy in ra kết quả duyệt inorder của cây.
Hãy giúp Bình viết chương trình thực hiện các thao tác xoá trên BST.
Định dạng đầu vào
- Dòng đầu chứa hai số nguyên dương \(N\) và \(Q\) (\(1 \le N, Q \le 10^3\)).
- Dòng thứ hai chứa \(N\) số nguyên dương phân biệt \(a_1, a_2, \dots, a_N\) (\(1 \le a_i \le 10^9\)).
- Dòng thứ ba chứa \(Q\) số nguyên \(x_1, x_2, \dots, x_Q\) là các giá trị cần xoá theo thứ tự. Dữ liệu đảm bảo các giá trị cần xoá đều có tồn tại trong BST tại thời điểm xoá.
Định dạng đầu ra
- Gồm \(Q\) dòng, mỗi dòng là dãy inorder của BST sau khi xoá giá trị tương ứng.
Ví dụ
Input:
7 3
5 3 7 2 4 6 8
7 5 4
Output:
2 3 4 5 6 8
2 3 4 6 8
2 3 6 8
Giải thích:
- Sau khi xoá \(7\): inorder \(2, 3, 4, 5, 6, 8\).
- Sau khi xoá \(5\): inorder \(2, 3, 4, 6, 8\).
- Sau khi xoá \(4\): inorder \(2, 3, 6, 8\).
Nhận xét