01/10/2018, 09:19
Hỏi về cây AVL C++
Mình đang làm bài tập c++ về cây AVL,làm xong bài 1 sang bài 2 thì có cụm từ " thêm con trỏ trỏ tới nút cha" , trước giờ thấy mỗi con trỏ rẽ nhánh trái phải chứ chưa thấy con trỏ trỏ tới nút cha
ACE ai biết chỉ mình vụ này với
Nếu được thì mình xin 1 đoạn code minh họa không thì thuật toán hoặc đơn giản là keyword thì cũng ok lắm rồi
Cảm ơn mọi người
Bài liên quan





Bạn này thích trồng cây nhỉ…
Hì hì bài tập mà,cơ mà chưa hiểu làm sao mỗi lần chạy ( ví dụ nhập dữ liệu từ file ) nút cha được cật nhật bạn nhỉ
Thì khi nào tạo hoặc di chuyển
child-nodethì đồng thời cập nhậtparent-nodecho nó thôi.Thực ra là với cậy AVL thì không thấy việc lưu lại
parent-nodecó ý nghĩa lắm trừ việc phải cân bằng lại cây. Vì khi cân bằng lại cây thì các node bị thay đổi vị trí dẫn đến việc đệ quy không đạt được hiệu quả nên cần biếtparent-nodeđể biết cách truy vấn ngược lên trên thôi.Anh có thể cho em 1 đoạn code ngắn được không,em vẫn mập mờ quá
Dùng mã giả code cho dễ hiểu nhé. Ví dụ cho bài toán tìm số lớn nhất nhỏ hơn node cho trước:
Thằng node start là thằng
dthằngenằm bên trái sẽ lớn hơnd. Tương tự thằngbvàccũng lớn hơnd. Tìm ra thằnganhỏ hơnd.Nếu duyệt tiếp thằng
rightthì thằngrightlớn hơn thằngbdo nếublớn hơnrightthì nó đã nằm bên phải thằngrightrồi. Điều đó kéo theo làrightlớn hơnd.Nếu duyệt tiếp thằng
leftthì thằng này sẽ nhỏ hơn thằngarồi nênachính là thằng cần tìm.Đấy ví dụ bài toán này không duyệt từ
rootthì không có parent- node thì không làm được. Còn nếu duyệt từ root thì đơn giản thôi. Chạy tìm mút mùa ra được thằngdxong tìm ngược lại. Chưa kể input làdthì cũng không tìm được chỗrootở đâu cả.Lâu lâu làm mấy bài này đau não quá.
Cảm ơn anh rất nhiều