Vì vậy, tôi mới học cây đen đỏ ở Cormen và wow! Thông thường tôi muốn hiểu tất cả các thuật toán và cấu trúc dữ liệu đến mức tôi có thể xây dựng lại chúng từ đầu mà không phải gian lận khi nhìn vào mã giả. Tôi thực sự thích các thuật toán vì vậy tôi thích học cách chúng hoạt động và tôi thường đi từng dòng một và thử một số trường hợp bằng cách xem mã và kiểm tra xem những gì đang xảy ra là điều tôi hiểu điều đó sẽ xảy ra.
Chỉ cần hiểu những gì đang xảy ra đã khiến tôi mất rất nhiều thời gian cho cây RB. Ngay cả với những lời giải thích của cuốn sách, tôi vẫn thấy khó nắm bắt được mã. Chưa kể rằng tôi không thể hiểu làm thế nào / tại sao các phép quay hoạt động. Tôi không thấy nó trực quan chút nào. Ý tôi là, ba (sáu thực tế) trường hợp khác nhau để chèn và sau đó là 4 trường hợp để xóa? Có thể hiểu điều này? Tôi không thể xây dựng lại mã này mà không gian lận. Cho đến khi cây nhị phân tôi có thể thực hiện những thứ trong đầu, với một số điều chỉnh nó sẽ luôn hoạt động, nhưng cây RB tôi thậm chí sẽ không thử. Ý tôi là, ngay cả giáo viên đôi khi cũng bối rối nên tôi cho rằng nó thực sự không dễ dàng, nhưng đồng thời, chúng ta không nên hiểu mọi thứ đang xảy ra hay ít nhất là tại sao? Cuốn sách đã không t thực sự giải thích làm thế nào một người nào đó nghĩ ra ý tưởng quay. Làm thế nào mà ai đó nhận thấy rằng với 2 lần quay, bạn có thể giải quyết bất kỳ vấn đề chèn nào? Thật ngạc nhiên!
Câu hỏi của tôi là, tôi thực sự phải hiểu 100% cây RB? Tôi cảm thấy loại bỏ qua những thứ xấu mà không hiểu đầy đủ về nó. Cảm ơn các bạn trước! (PS: không có thẻ cho cây RB, thực tế thậm chí không có cây, chỉ là cây nhị phân, vì vậy tôi chỉ đặt thuật toán)