Một số thắc mắc với cây nhị phân C++
Mình đang làm bài tập trên cây tìm kiếm nhị phân nhưng đang bí chức năng sau:
̶c̶̶.̶ ̶L̶̶ư̶̶u̶ ̶t̶̶o̶̶à̶̶n̶ ̶b̶̶ộ̶ ̶d̶̶ữ̶ ̶l̶̶i̶̶ệ̶̶u̶ ̶t̶̶r̶̶ê̶̶n̶ ̶c̶̶â̶̶y̶ ̶x̶̶u̶̶ố̶̶n̶̶g̶ ̶f̶̶i̶̶l̶̶e̶̶.̶
̶m̶̶.̶ ̶Đ̶̶ả̶̶o̶ ̶n̶̶h̶̶á̶̶n̶̶h̶ ̶t̶̶r̶̶á̶̶i̶ ̶v̶̶à̶ ̶n̶̶h̶̶á̶̶n̶̶h̶ ̶p̶̶h̶̶ả̶̶i̶ ̶c̶̶ủ̶̶a̶ ̶c̶̶â̶̶y̶̶.̶
̶n̶̶.̶ ̶D̶̶u̶̶y̶̶ệ̶̶t̶ ̶c̶̶â̶̶y̶ ̶t̶̶h̶̶e̶̶o̶ ̶c̶̶h̶̶i̶̶ề̶̶u̶ ̶r̶̶ộ̶̶n̶̶g̶ ̶(̶̶B̶̶F̶̶S̶)
̶o̶̶.̶ ̶D̶̶u̶̶y̶̶ệ̶̶t̶ ̶c̶̶â̶̶y̶ ̶t̶̶h̶̶e̶̶o̶ ̶c̶̶h̶̶i̶̶ề̶̶u̶ ̶s̶̶â̶̶u̶ ̶(̶̶D̶̶F̶̶S̶
̶p̶̶.̶ ̶K̶̶i̶̶ể̶̶m̶ ̶t̶̶r̶̶a̶ ̶x̶̶e̶̶m̶ ̶c̶̶â̶̶y̶ ̶T̶ ̶c̶̶ó̶ ̶p̶̶h̶̶ả̶̶i̶ ̶l̶̶à̶ ̶c̶̶â̶̶y̶ ̶c̶̶â̶̶n̶ ̶b̶̶ằ̶̶n̶̶g̶ ̶h̶̶o̶̶à̶̶n̶ ̶t̶̶o̶̶à̶̶n̶ ̶h̶̶a̶̶y̶ ̶k̶̶h̶̶ô̶̶n̶̶g̶̶?̶
̶r̶̶.̶ ̶T̶̶ì̶̶̶m̶ ̶m̶̶ứ̶̶c̶ ̶c̶̶ủ̶̶a̶ ̶m̶̶ộ̶̶t̶ ̶n̶̶ú̶̶t̶ ̶t̶̶h̶̶e̶̶o̶ ̶g̶̶i̶̶á̶ ̶t̶̶r̶̶ị̶ ̶n̶̶h̶̶ậ̶̶p̶̶.̶
̶s̶̶.̶ ̶K̶̶i̶̶ể̶̶m̶ ̶t̶̶r̶̶a̶ ̶m̶̶ộ̶̶t̶ ̶c̶̶â̶̶y̶ ̶T̶ ̶c̶̶h̶̶o̶ ̶t̶̶r̶̶ư̶̶ớ̶̶c̶ ̶c̶̶ó̶ ̶p̶̶h̶̶ả̶̶i̶ ̶l̶̶à̶ ̶c̶̶â̶̶y̶ ̶B̶̶S̶̶T̶ ̶h̶̶a̶̶y̶ ̶k̶̶h̶̶ô̶̶n̶̶g̶̶?̶
Sau 1 buổi tối chinh chiến tới 3h38 phút sáng ,đã nghiên cứu và làm xong bài tập,cảm ơn tất cả mọi người,giờ phải đi ngủ đã
Link bài tập full
Cảm ơn mọi người rất nhiều
Bài này bị flag là đúng rồi. Với câu hỏi này thì mong muốn của bạn là gì?
Câu O với E hình như là như nhau @_@
DFS bản chất là có 3 hướng duyệt như vậy.
Còn khi duyệt được rồi thì ở câu C có thể vừa duyệt và vừa append vào file và tương tự cho câu R là vừa duyệt vừa đếm và dùng BFS sẽ tiện.
em cũng đã tìm hiểu nhưng hình như có >3 kiểu duyệt ở case e thì phải ạ
chết cha edit lại xóa luôn cái dòng muốn hỏi
Mình đã edit lại lần 3,cảm ơn bạn đã nhắc nhở
Mấy cái này hiểu đc recursion thì dễ lắm, thuật toán nhé
m/
Câu m) thì làm kiểu gì tại vì bên trái < bên phải mà. Hay là cân bằng AVL?
Câu r) giống q)
Câu s) thì với thứ tự <= cho trước, nếu bên phải <= bên trái thì knock out. Có liên quan đến min max.
bạn có thể giải nghĩa nó không,nếu mình không nhầm là:
Mình thắc mắc là reverse_tree là hàm có sẵn hay mình định nghĩa z
Hì Hì phiền bạn nói rõ hơn được k
recursion hay còn gọi là đệ quy.
reverse_tree là tên mình đặt; 1 dạng recursion
DFS thì viết đệ quy đc chứ BFS làm sao đc ông ?
Câu s) bạn tìm hiểu định nghĩa cây nhị phân tìm kiếm nó sẽ ntn.
dưới một thứ tự toàn phần <. Vì vậy phải có min max, nếu chỉ xét cục bộ là sai.
^ oops…
Nếu vậy mình sẽ tìm MAX rồi gán nó = gốc
-tiếp đó so sánh các phần tử bên trái và bên phải
-nếu các phần tử bên trái > MAX và bên phải <MAX thì return false,ngược lại thì true
Chả biết đúng không mong bạn đừng chê cười :))
Sau 1 buổi tối cày quốc tới 3h sáng , thanh niên vẫn tắc tịt 2 yêu cầu
n. Duyệt cây theo chiều rộng (BFS)
-Chưa hiểu giải thuật
o. Duyệt cây theo chiều sâu (DFS)
-Ngoài đầu (NLR), giữa (LNR), cuối (LRN),còn trường hợp gì nữa nhỉ ?
n. Sử dụng cấu trúc queue (FIFO) đó cứ đẩy mỗi node ra thì kiểm tra trước rồi đưa cả hai node con vào queue.
Đây là code nhà người ta:
Cho mình hỏi câu
"Người ta " cũng đã chỉ thuật toán và cho code tham khảo nhưng mà chưa hiểu code cái dòng trên có nghĩa là sao,mọi người chỉ mình với.
Tức là tách ra theo khoảng trắng. Vấn đề là phải chuẩn hóa xong thì mới được =)) thôi thà đọc trực tiếp cho rồi.