Bài giảng Cơ sở dữ liệu giải thuật: Bài 4 - Cấu trúc dữ liệu biểu diễn danh sách (Phần 2)

14 18 0
Bài giảng Cơ sở dữ liệu giải thuật: Bài 4 - Cấu trúc dữ liệu biểu diễn danh sách (Phần 2)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Cơ sở dữ liệu giải thuật: Bài 4 - Cấu trúc dữ liệu biểu diễn danh sách (Phần 2) giới thiệu thư viện khuôn mẫu chuẩn STL, cài đặt danh sách bằng mảng C++, bộ ba quan trọng, hàm insert, append của Dlist; ứng dụng KDLTT danh sách.

Bài 4: Cấu trúc liệu biểu diễn danh sách (P2) Giảng viên: Hồng Thị Điệp Khoa Cơng nghệ Thơng tin – Đại học Công Nghệ Giới thiệu thư viện khn mẫu chuẩn STL • • • • • • diepht@vnu • • • • • Ôn tập • Con trỏ nhớ động • Bộ công cụ lặp diepht@vnu Cài đặt danh sách mảng C++ Cấp phát tĩnh template class List{ public: static const int MAX = 50; // private: Item element[MAX]; int last; }; diepht@vnu Cấp phát động template class Dlist{ public: // private: Item * element; int size; int last; }; Bộ ba quan trọng Dlist có thành phần liệu cấp phát động nên phải cài đặt ba • Hàm kiến tạo chép • Tốn tử gán • Hàm hủy diepht@vnu Hàm insert, append Dlist • A = (1, 3, 4, 8); size = 4; last = • insert(A, 3, 50) cũ 8 4 50 50 diepht@vnu A = (1, 3, 4, 50, 8); size = 8; last = Hàm insert, append Dlist Khi mảng đầy • Cấp phát động mảng có cỡ gấp đơi mảng cũ • Chép đoạn đầu mảng cũ sang mảng • Đưa phần tử cần xen vào mảng • Chép đoạn cịn lại mảng cũ sang mảng • Hủy mảng cũ • Cập nhật size, last Viết mã C++! diepht@vnu Ứng dụng KDLTT danh sách • Tập động – Mỗi phần tử có thành phần khóa phân biệt Các giá trị khóa có quan hệ thứ tự – Các phép toán: isEmpty, insert, del, seach, getMax, getMin – Ví dụ: ((“An”, 1985), (“Bình”, 1986), (“Cường, 1985), (“Dung”, 1987)) – Cài danh sách hay khơng tốt hơn? diepht@vnu KDLTT tập động diepht@vnu Ứng dụng KDLTT danh sách • Đa thức – Ví dụ: ((17,5), (-25, 2), (14, 1), (-32, 0)) biểu diễn đa thức 17x5 – 25x2 + 14x – 32 – Các phép toán: cộng, trừ, nhân diepht@vnu 10 Ứng dụng KDLTT danh sách • Ma trận thưa – Ma trận chứa số phần tử khác – Cách biểu diễn: • Xem ma trận danh sách dịng • Mỗi dòng danh sách biểu diễn phần tử khác • Mỗi phần tử khác cặp (chỉ số cột, giá trị) – Ví dụ: (((2, 7), (5, 3)), ((3, 8)), (), ((2, 5), (4, 9))) – Các phép tốn ma trận, dịng, phần tử diepht@vnu 11 Tìm kiếm nhị phân Algorithm binarySearch(x, A, first, last): search keyword x and array A of Items with two ends marked by indexes first and last Output: true if x in A, false otherwise if first > last then return false mid (first + last) / if x = A[mid].key then return true else if x < A[mid].key then binarySearch(x, A, first, mid - 1) else binarySearch(x, A, mid + 1, last) Input: diepht@vnu 12 Tìm kiếm nhị phân A 11 số A = (1, 3, 4, 6, 8, 9, 11); x = search(x, A) • binarySearch(x, A, first, last) • binarySearch(x, A, 0, 6) – So x với A[3] x nhỏ • binarySearch(x, A, 0, 2) – So x với A[1] x lớn • binarySearch(x, A, 2, 2) – So x với A[2] Bằng Trả true diepht@vnu 13 Chuẩn bị tới • Đọc chương giáo trình diepht@vnu INT2203/w04 14 ... – Cài danh sách hay khơng tốt hơn? diepht@vnu KDLTT tập động diepht@vnu Ứng dụng KDLTT danh sách • Đa thức – Ví dụ: ((17,5), (-2 5, 2), ( 14, 1), (-3 2, 0)) biểu diễn đa thức 17x5 – 25x2 + 14x –... nhân diepht@vnu 10 Ứng dụng KDLTT danh sách • Ma trận thưa – Ma trận chứa số phần tử khác – Cách biểu diễn: • Xem ma trận danh sách dịng • Mỗi dịng danh sách biểu diễn phần tử khác • Mỗi phần tử... thành phần liệu cấp phát động nên phải cài đặt ba • Hàm kiến tạo chép • Tốn tử gán • Hàm hủy diepht@vnu Hàm insert, append Dlist • A = (1, 3, 4, 8); size = 4; last = • insert(A, 3, 50) cũ 8 4 50 50

Ngày đăng: 11/05/2021, 03:44

Tài liệu cùng người dùng

Tài liệu liên quan