Thao tác trên cây tìm kiếm nhị phân
Submit solution
Points:
4
Time limit:
1.0s
Memory limit:
977M
Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG
Tichpx dạy về Cấu trúc dữ liệu cây tìm kiếm nhị phân quản lý ở mỗi nút là một số nguyên gồm các thao tác
- Thao tác bổ sung một giá trị : Nếu trong cây chưa có thì bổ sung bằng cách duyệt từ gốc nếu nhỏ hơn nút đang xét thì bổ sung sang trái, nếu lớn hơn thì bổ sung sang phải cứ như thế đến nút trống thì bổ sung vào
- Thao tác loại bỏ một giá trị: Nếu có trong cây thì loại bỏ bằng cách nếu có cây con trái tại nút muốn loại bỏ thì đưa Max cây con trái lên vị trí loại bỏ và sau đó lại bỏ Max cây con trái, nếu không có cây con trái mà có cây con phải thì tìm Min của cây con phải đưa lên và loại bỏ Min của cây con phải. Nếu không có cả 2 cây con thì loại bỏ luôn nút đang chứa giá trị loại bỏ.
- Thao tác truy vấn 1 giá trị: Nếu không có trong cây thì in ra \(-1\) ngược lại in đường đi qua những nút từ vị trí truy vấn ngược về gốc.
Do mới học về Cây tìm kiếm nhị phân nên cài đặt các thao tác khá khó khăn đối với học trò của Tichpx bạn hãy lập trình giúp các học trò của Tichpx nhé.
Input
Dòng đầu là số nguyên dương n \((1<=n<=10^4)\) là số các thao tác đối với cây Tìm kiếm nhị phân ban đầu cây Rỗng thực hiện lần lượt n thao tác này.
n dòng tiếp theo mỗi dòng gồm 2 cặp số u và v trong đó u nhận các giá trị \(\{1,-1, 0\}\) tương ứng với các thao tác 1 là bổ sung v vào cây, -1 loại bỏ giá trị v khỏi cây và 0 là truy vấn in ra đường đi từ v ngược về gốc \((1<=v<=10^4)\)
Output
Đối với mỗi truy vấn dạng 0, xuất ra màn hình đường đi từ giá trị v ngược về gốc cây trên một dòng
Ví dụ
Input
20
1 3
1 5
1 2
1 8
0 2
-1 3
1 7
0 8
1 6
0 6
-1 8
0 6
1 9
0 9
1 3
0 3
-1 5
0 6
-1 9
0 9
Output
2 3
8 5 2
6 7 8 5 2
6 7 5 2
9 7 5 2
3 5 2
6 7 3 2
-1
Comments
Chú ý thao tác xóa, nếu không có cây con trái thì nó không bằng cây con phải luôn nhé và tương tự cho cây con phải vẫn phải thực hiện đúng quy trình
Bài này có vẻ sai test cần kiểm tra lại
Thầy đã kiểm tra lại test vẫn đúng