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

Không có ý kiến tại thời điểm này.