Bài giảng Cấu trúc dữ liệu và thuật toán - Chương 6: Danh sách liên kết
Số trang: 149
Loại file: pdf
Dung lượng: 2.26 MB
Lượt xem: 16
Lượt tải: 0
Xem trước 10 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Sau khi học xong chương 6 Danh sách liên kết nằm trong bài giảng cấu trúc dữ liệu và thuật toán nhằm trình bày về các nội dung chính như sau: giới thiệu Danh sách liên kết đơn (Single Linked List), danh sách liên kết đôi (Double Linked List) và danh sách liên kết vòng (Circular Linked List).
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và thuật toán - Chương 6: Danh sách liên kếtCHAPTER 6: DANH SÁCH LIÊN KẾT (LINKED LISTS) Nội dung 2 Giới thiệu Danh sách liên kết đơn (Single Linked List) Danh sách liên kết đôi (Double Linked List) Danh sách liên kết vòng (Circular Linked List)Chương 6: Danh sách liên kết Giới thiệu 3 Kiểu dữ liệu tĩnh Khái niệm: Một số đối tượng dữ liệu không thay thay đổi được kích thước, cấu trúc, … trong suốt quá trình sống. Các đối tượng dữ liệu thuộc những kiểu dữ liệu gọi là kiểu dữ liệu tĩnh. Một số kiểu dữ liệu tĩnh: các cấu trúc dữ liệu được xây dựng từ các kiểu cơ sở như: kiểu thực, kiểu nguyên, kiểu ký tự ... hoặc từ các cấu trúc đơn giản như mẩu tin, tập hợp, mảng ... Các đối tượng dữ liệu được xác định thuộc những kiểu dữ liệu này thường cứng ngắt, gò bó khó diễn tả được thực tế vốn sinh động, phong phú.Chương 6: Danh sách liên kết Giới thiệu 4 Một số hạn chế của CTDL tĩnh Một số đối tượng dữ liệu trong chu kỳ sống của nó có thể thay đổi về cấu trúc, độ lớn, như danh sách các học viên trong một lớp học có thể tăng thêm, giảm đi ... Nếu dùng những cấu trúc dữ liệu tĩnh đã biết như mảng để biểu diễn Những thao tác phức tạp, kém tự nhiên chương trình khó đọc, khó bảo trì và nhất là khó có thể sử dụng bộ nhớ một cách có hiệu quả Dữ liệu tĩnh sẽ chiếm vùng nhớ đã dành cho chúng suốt quá trình hoạt động của chương trình sử dụng bộ nhớ kém hiệu quảChương 6: Danh sách liên kết Giới thiệu 5 Cấu trúc dữ liệu tĩnh: Ví dụ: Mảng 1 chiều Kích thước cố định (fixed size) Chèn 1 phần tử vào mảng rất khó Các phần tử tuần tự theo chỉ số 0 n-1 Truy cập ngẫu nhiên (random access) chèn 0 1 2 3 4 n-2 n-1Chương 6: Danh sách liên kết Giới thiệu 6 Cấu trúc dữ liệu động: Ví dụ: Danh sách liên kết, cây Cấp phát động lúc chạy chương trình Các phần tử nằm rải rác ở nhiều nơi trong bộ nhớ Kích thước danh sách chỉ bị giới hạn do RAM Thao tác thêm xoá đơn giản Insert, DeleteChương 6: Danh sách liên kết Giới thiệu 7 Danh sách liên kết: Mỗi phần tử của danh sách gọi là node (nút) Mỗi node có 2 thành phần: phần dữ liệu và phần liên kết chứa địa chỉ của node kế tiếp hay node trước nó Các thao tác cơ bản trên danh sách liên kết: Thêm một phần tử mới Xóa một phần tử Tìm kiếm …Chương 6: Danh sách liên kết 8 Có nhiều kiểu tổ chức liên kết giữa các phần tử trong danh sách như: Danh sách liên kết đơn Danh sách liên kết kép Danh sách liên kết vòngChương 6: Danh sách liên kết Giới thiệu 9 Danh sách liên kết đơn: mỗi phần tử liên kết với phần tử đứng sau nó trong danh sách: A B X Z Y Danh sách liên kết đôi: mỗi phần tử liên kết với các phần tử đứng trước và sau nó trong danh sách: A B C DChương 6: Danh sách liên kết Giới thiệu 10 Danh sách liên kết vòng : phần tử cuối danh sách liên kết với phần tử đầu danh sách: A B X Z Y A B C DChương 6: Danh sách liên kết Giới thiệu 11 Hướng giải quyết Cần xây dựng cấu trúc dữ liệu đáp ứng được các yêu cầu: Linh động hơn Có thể thay đổi kích thước, cấu trúc trong suốt thời gian sống Cấu trúc dữ liệu độngChương 6: Danh sách liên kết Biến không động 12 Biến không động (biến tĩnh, biến nửa tĩnh) là những biến thỏa: Được khai báo tường minh, Tồn tại khi vào phạm vi khai báo và chỉ mất khi ra khỏi phạm vi này, Được cấp phát vùng nhớ trong vùng dữ liệu (Data segment) hoặc là Stack (đối với biến nửa tĩnh - các biến cục bộ). Kích thước không thay đổi trong suốt quá trình sống. Do được khai báo tường minh, các biến không động có một định danh đã được kết nối với địa chỉ vùng nhớ lưu trữ biến và được t ...
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và thuật toán - Chương 6: Danh sách liên kếtCHAPTER 6: DANH SÁCH LIÊN KẾT (LINKED LISTS) Nội dung 2 Giới thiệu Danh sách liên kết đơn (Single Linked List) Danh sách liên kết đôi (Double Linked List) Danh sách liên kết vòng (Circular Linked List)Chương 6: Danh sách liên kết Giới thiệu 3 Kiểu dữ liệu tĩnh Khái niệm: Một số đối tượng dữ liệu không thay thay đổi được kích thước, cấu trúc, … trong suốt quá trình sống. Các đối tượng dữ liệu thuộc những kiểu dữ liệu gọi là kiểu dữ liệu tĩnh. Một số kiểu dữ liệu tĩnh: các cấu trúc dữ liệu được xây dựng từ các kiểu cơ sở như: kiểu thực, kiểu nguyên, kiểu ký tự ... hoặc từ các cấu trúc đơn giản như mẩu tin, tập hợp, mảng ... Các đối tượng dữ liệu được xác định thuộc những kiểu dữ liệu này thường cứng ngắt, gò bó khó diễn tả được thực tế vốn sinh động, phong phú.Chương 6: Danh sách liên kết Giới thiệu 4 Một số hạn chế của CTDL tĩnh Một số đối tượng dữ liệu trong chu kỳ sống của nó có thể thay đổi về cấu trúc, độ lớn, như danh sách các học viên trong một lớp học có thể tăng thêm, giảm đi ... Nếu dùng những cấu trúc dữ liệu tĩnh đã biết như mảng để biểu diễn Những thao tác phức tạp, kém tự nhiên chương trình khó đọc, khó bảo trì và nhất là khó có thể sử dụng bộ nhớ một cách có hiệu quả Dữ liệu tĩnh sẽ chiếm vùng nhớ đã dành cho chúng suốt quá trình hoạt động của chương trình sử dụng bộ nhớ kém hiệu quảChương 6: Danh sách liên kết Giới thiệu 5 Cấu trúc dữ liệu tĩnh: Ví dụ: Mảng 1 chiều Kích thước cố định (fixed size) Chèn 1 phần tử vào mảng rất khó Các phần tử tuần tự theo chỉ số 0 n-1 Truy cập ngẫu nhiên (random access) chèn 0 1 2 3 4 n-2 n-1Chương 6: Danh sách liên kết Giới thiệu 6 Cấu trúc dữ liệu động: Ví dụ: Danh sách liên kết, cây Cấp phát động lúc chạy chương trình Các phần tử nằm rải rác ở nhiều nơi trong bộ nhớ Kích thước danh sách chỉ bị giới hạn do RAM Thao tác thêm xoá đơn giản Insert, DeleteChương 6: Danh sách liên kết Giới thiệu 7 Danh sách liên kết: Mỗi phần tử của danh sách gọi là node (nút) Mỗi node có 2 thành phần: phần dữ liệu và phần liên kết chứa địa chỉ của node kế tiếp hay node trước nó Các thao tác cơ bản trên danh sách liên kết: Thêm một phần tử mới Xóa một phần tử Tìm kiếm …Chương 6: Danh sách liên kết 8 Có nhiều kiểu tổ chức liên kết giữa các phần tử trong danh sách như: Danh sách liên kết đơn Danh sách liên kết kép Danh sách liên kết vòngChương 6: Danh sách liên kết Giới thiệu 9 Danh sách liên kết đơn: mỗi phần tử liên kết với phần tử đứng sau nó trong danh sách: A B X Z Y Danh sách liên kết đôi: mỗi phần tử liên kết với các phần tử đứng trước và sau nó trong danh sách: A B C DChương 6: Danh sách liên kết Giới thiệu 10 Danh sách liên kết vòng : phần tử cuối danh sách liên kết với phần tử đầu danh sách: A B X Z Y A B C DChương 6: Danh sách liên kết Giới thiệu 11 Hướng giải quyết Cần xây dựng cấu trúc dữ liệu đáp ứng được các yêu cầu: Linh động hơn Có thể thay đổi kích thước, cấu trúc trong suốt thời gian sống Cấu trúc dữ liệu độngChương 6: Danh sách liên kết Biến không động 12 Biến không động (biến tĩnh, biến nửa tĩnh) là những biến thỏa: Được khai báo tường minh, Tồn tại khi vào phạm vi khai báo và chỉ mất khi ra khỏi phạm vi này, Được cấp phát vùng nhớ trong vùng dữ liệu (Data segment) hoặc là Stack (đối với biến nửa tĩnh - các biến cục bộ). Kích thước không thay đổi trong suốt quá trình sống. Do được khai báo tường minh, các biến không động có một định danh đã được kết nối với địa chỉ vùng nhớ lưu trữ biến và được t ...
Tìm kiếm theo từ khóa liên quan:
Danh sách liên kết Danh sách liên kết đôi Danh sách liên kết đơn Danh sách liên kết vòng Cấu trúc dữ liệu Cấu trúc giải thuật Thành phần dữ liệuGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 300 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 145 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 138 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 135 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 135 0 0 -
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 99 0 0 -
Thiết kế hệ thống thông tin - Tổng quan hệ thống thông tin
86 trang 86 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 70 0 0 -
49 trang 66 0 0
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Ngô Công Thắng
8 trang 63 0 0