01/10/2018, 00:46
Chèn dữ liệu vào cây nhị phân tìm kiếm
Hi all, e có code cây nhị phân như hình dưới, khi chèn xong in ra giá trị của nút con bên trái gốc thì nó báo null. Mọi người xem giúp code chèn giá trị vào cây của e có vấn đề khi không mà tại sao lại ra kết quả như vậy?
Bài liên quan
chỗ node = n; nó không thực sự work như em nghĩ đâu. Tức là việc gán node = n sẽ không ảnh hưởng tới tree.nodeLeft. Tức là khi gọi insert1(node.nodeLeft, value); sẽ không có tác dụng assign left vào tree.
Do tính chất pass by value và pass by reference trong Java. Nếu em pass 1 object và chỉ sửa đổi các dữ liệu bên trong object, khi kết thúc method, object được truyền vào sẽ được thay đổi giá trị. Còn object hoặc primitive type bị gán vùng nhớ mới, khi kết thúc method, giá trị bên ngoài không bị ảnh hưởng.
Cho nên method đệ quy insert1 đã vi phạm việc này nên bị lỗi null khi print ra.
Vậy có cách để viết 1 hàm khởi tạo giá trị cho obj bằng cách truyền 1 đối tượng chưa được khởi tạo vào không bác, ví dụ như hình bên dưới
p = new Person(name); thôi, cần gì phải khổ cực làm cái method như vậy??
Còn nếu vẫn muốn method như vậy thì cho return trả về đi.