Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 7: Danh sách liên kết

Bài giảng "Cấu trúc dữ liệu và giải thuật trong C++ - Bài 7: Danh sách liên kết" cung cấp cho người học các kiến thức: Vấn đề của Mảng, danh sách liên kết, cấu trúc của một Node, cấu trúc danh sách liên kết đơn,. nội dung chi tiết. | Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 7: Danh sách liên kết Bài 7 Danh sách liên kết (Linked List) 1 Vấn đề của Mảng Xét lại vấn đề sử dụng mảng để tạo danh sách : Thêm phần tử : O(n) Xoá phần tử : O(n) Số phần tử mảng cố định!!! 2 Vấn đề của Mảng Làm sao có thể thêm (hay xoá) một phần tử mà không phải di chuyển các phần tủ khác? Làm sao để danh sách “động” hơn? Cần dùng một cấu trúc lưu trữ mới với các yêu cầu Các phần tử phải được tách rời ra Và được nối với nhau bằng “dây liên kết” Khi thêm phần tử chỉ cần thay đổi mối đây liên kết chi phí xử lý sẽ thấp hơn 3 DANH SÁCH LIÊN KẾT Mô hình cấu trúc dữ liệu trừu tượng Linked List là một dãy các vị trí lữu trữ các đối tượng với số lượng tùy ý. Nó thiết lập một mối quan hệ trước/sau giữa các vị trí Danh sách liên kết đơn Danh sách liên kết kép 4 Danh sách liên kết đơn Các nút (node) được cài đặt bao gồm: next Phần tử lưu trữ trong nó Một liên kết đến nút kế tiếp Sử dụng môt con trỏ header, trỏ vào node đầu danh sách và con trỏ elem node trailer trỏ vào node cuối danh sách. trailer header node NULL elem 5 Cấu trúc của một Node Các thuộc tính Element *elem; Node *next; Các phương thức Node *getnext() - Trả lại địa chỉ của nút kế tiếp Element *getElem() - Trả lại địa chỉ của phần tử mà nút trỏ tới trong nút void setNext(Node *) - Đặt thuộc tính next trỏ đến đ/c phần tử là đối của phương thức void setElem(Element e) - Đặt phần tử e vào nút 6 Cấu trúc danh sách liên kết đơn Các thuộc tính: Các phương thức cập nhật: Node *header void replace(Node *p, Element e) Node *trailer Node *insertAfter(Node *p, Element e) Các phương thức Node * insertFirst(Element e) chung: Node * insertLast(Element e) long size(), Node * getNode(int i) int isEmpty() void remove(Node *p) Các phương thức truy cập: Node *first() Node *last() 7 Insertion .

Không thể tạo bản xem trước, hãy bấm tải xuống
TỪ KHÓA LIÊN QUAN
TÀI LIỆU MỚI ĐĂNG
2    1369    2    20-04-2024
1    74    2    20-04-2024
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.