Danh sách liên kết đôi CodeLearn
This entry is part 5 of 16 in the series Cấu trúc dữ liệu Ở bài viết trước, tôi đã hướng dẫn bạn cách cài đặt danh sách liên kết đơn và các kiến thức về danh sách liên kết. Bài viết này, mình sẽ hướng dẫn bạn cài đặt danh sách liên kết đôi nhé. Danh sách liên kết đôi có sự liên kết 2 chiều giữa 2 phần tử liền kề nhau trong khi danh sách liên kết đơn chỉ có liên kết 1 chiều. Show 1. Lý thuyết về Danh sách liên kết đôi Một Node của danh sách liên kết đôi sẽ có dạng như sau:
Và hình dưới đây so sanh sự khác nhau giữ dslk đôi và dslk đơn: Khác biệt giữa danh sách liên kết đơn với danh sách liên kết đôi2. Cài đặt danh sách liên kết đôi2.1. Khai báo & khởi tạoKhác một chút với dslk đơn, ngoài con trỏ next, chúng ta sẽ có thêm con trỏ prev để liên kết với Node trước nó. Chúng ta vẫn sẽ để data có kiểu int để đơn giản và dễ hiểu nhé. Ngay sau khai báo, chúng ta sẽ khởi tạo Node đầu tiên của danh sách liên kết đôi.
2.2. Tạo mới 1 NodeThay vì chỉ cho next = NULL và gán giá trị cho Node mới, chúng ta cũng phải cho con trỏ prev = NULL.
2.3. Thêm NodeThêm vào đầu
Về cơ bản, ý tưởng thêm Node vào đầu/ cuối vẫn giống với thêm vào đầu trong danh sách liên kết đơn. Thêm vào cuối
2.4. Xóa NodeXóa ở đầu
Xóa ở cuối
2.5. Duyệt danh sách liên kếtDuyệt từ đầu tới cuốiTa sẽ duyệt bắt đầu từ Node head cho tới trước khi gặp Node NULL bằng cách dùng con trỏ next.
Duyệt từ cuối về đầuLần này, ta sẽ duyệt bắt đầu từ Node tailcho tới trước khi gặp Node NULL bằng cách dùng con trỏ prev.
3. Full code danh sách liên kết đôi
Kết quả chạy:
|