1. Trang chủ
  2. » Giáo án - Bài giảng

Bài Giảng Cấu Trúc Dữ Liệu Và Giải Thuật ( combo full slides 6 chương )

476 1 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 476
Dung lượng 42,35 MB

Nội dung

CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Chương 1 MỘT SỐ VẤN ĐỀ CƠ BẢN VỀ CTDL> 1 1 Thuật toán và giải thuật 1 2 Cấu trúc dữ liệu 1 3 Độ phức tạp thuật toán 1 4 Một số giải thuật cơ bản 1 5 CASE STUDY Chương[.]

CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Chương MỘT SỐ VẤN ĐỀ CƠ BẢN VỀ CTDL> 1.1 Thuật toán giải thuật 1.2 Cấu trúc liệu 1.3 Độ phức tạp thuật toán 1.4 Một số giải thuật 1.5 CASE STUDY Chương Một số giải thuật quan trọng 2.1 Thuật toán vét cạn 2.2 Thuật toán sinh (Generation Algorithm) 2.3 Thuật toán đệ qui (Recursive Algorithm 2.4 Thuật toán quay lui (Back Track Alogorithm) 2.5 Thuật toán tham lam (Greedy Algorithm) 2.6 Thuật toán chia để trị (Divide and Conquer Algorithm) 2.7 Thuật toán qui hoạch động (Dynamic Algorithm) 2.8 Thuật toán nhánh cận (Branch an Bound) 2.9 Thuật tốn tìm kiếm mẫu (Pattern Searching) 2.10 CASE STUDY Chương Stack – Queue – Link List 3.1 Một số thuật toán dựa vào ngăn xếp 3.2 Một số Thuật toán dựa vào hàng đợi 3.3 Một số Thuật toán dựa danh sách liên kết 3.4 Khử đệ qui dựa vào ngăn xếp 3.5 Ứng dụng ngăn xếp 3.6 Ứng dụng hàng đợi 3.7 Ứng dụng danh sách liên kết 3.8 CASE STUDY Chương Cây nhị phân 4.1 Một số thuật thuật ngữ 4.2 Các thao tác nhị phân 4.3 Cây nhị phân tìm kiếm 4.4 Cây nhị phân cân 4.5 B-Tree 4.6 Cây đỏ đen 4.7 Cây tổng quát 4.8 CASE STUDY Chương Các thuật toán đồ thị 5.1 Một số thuật toán đồ thị vơ hướng 5.2 Một số thuật tốn đồ thị có hướng 5.3 Một số thuật tốn đồ thị Euler 5.4 Một số thuật toán đồ thị Hamilton 5.5 Một số thuật toán đồ thị đầy đủ 5.6 Một số thuật tốn đồ thị hai phía 5.7 Luồng cực đại mạng 5.8 CASE STUDY Chương Sắp xếp tìm kiếm 6.1 Sắp xếp đơn giản 6.2 Sắp xếp nhanh (Quick Sort) 6.3 Sắp xếp kiểu hòa nhập (Merge Sort) 6.4 Sắp xếp kiểu vun đống (Heap Sort) 6.5 Tìm kiếm tuyến tính 6.6 Tìm kiếm nhị phân 6.7 Tìm kiếm theo số 6.8 Tìm kiếm nhị phân 6.9 CASE STUDY TÀI LIỆU THAM KHẢO: [1] Robert Sedgewick, “Algorihms”, McGraw Hill Company, 2006, Vol 1, 2, 3, [2] N Knuth, “The Art of Programming”, McGraw Hill Company, 2006, Vol 1, 2, 3, [3] Robert Sedgewick, “Cẩm nang thuật toán”, Nhà xuất khoa học kỹ thuật Hà Nội, 2004, Vol 1, 2, 3, [4] Lê Minh Hoàng, “Bài giảng chuyên đề”, Nhà xuất khoa học kỹ thuật Hà Nội, 2008 YÊU CẦU: Hiểu phương pháp biểu diễn thuật toán Đánh giá độ phức tạp thuật tốn Cài đặt thuật tốn ngơn ngữ C++ Hoàn thành CASE STUDY theo chương PHƯƠNG PHÁP ĐÁNH GIÁ: • CASE STUDY : 10% • CASE STUDY : 10% • CASE STUDY : 10% • CASE STUDY : 10% • CASE STUDY : 10% • CASE STUDY : 10% • Chuyên cần : 20% • Trả lời vấn đáp : 20% CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NỘI DUNG: Chương MỞ ĐẦU 1.1 Qui trình giải vấn đề máy tính 1.2 Thuật tốn giải thuật 1.3 Cấu trúc liệu 1.4 Độ phức tạp thuật toán 1.5 Một số thuật toán 1.6 CASE STUDY 1.1 Qui trình giải vấn đề máy tính •Xác định u cầu tốn: Xem xét tốn cần xử lý vấn đề gì? Giả thiết biết trước lời giải cần đạt u cầu gì? Ví dụ thời gian, hay khơng gian nhớ •Tìm cấu trúc liệu biểu diễn tốn: Cấu trúc liệu phải biểu diễn đầy đủ đối tượng thơng tin vào tốn Các thao tác cấu trúc liệu phải phù hợp với thao tác thuật toán lựa chọn Cấu trúc liệu phải cài đặt ngôn ngữ lập trình cụ thể đáp ứng u cầu tốn •Tìm thuật tốn: ứng với cấu trúc liệu lựa chọn: • Cài đặt thuật tốn cấu trúc liệu lựa chọn • Kiểm thử chương trình cài đặt theo thuật tốn • Tối ưu chương trình: Cải tiến để chương trình tốt 1/18/2016 Các thành viên lớp dqueue: Thành viên Ý nghĩa iterator end() Trả lại trỏ iterato đến phần tử cuối dqueue iterator begin() const_iterator begin() const const_iterator end() const reverse_iterator rbegin() reverse_iterator rend() const_reverse_iterator rbegin() const const_reverse_iterator rend() const Các thành viên lớp dqueue: Thành viên size_type size() const size_type max_size() const Trả lại trỏ iterator đến phần tử dqueue Trả lại trỏ iterator đến phần tử vector Trả lại trỏ iterato đến phần tử cuối dqueue Trả lại trỏ reverse_iterator đến phần tử dqueue sau đảo ngược Trả lại trỏ reverse_iterator đến phần tử cuối dqueue sau đảo ngược Trả lại trỏ reverse_iterator đến phần tử dqueue sau đảo ngược Trả lại trỏ reverse_iterator đến phần tử cuối dqueue sau đảo ngược Ý nghĩa Trả lại kích thước dqueue Trả lại kích cỡ lớn dqueue bool empty() const Kiểm tra tính rỗng vector dqueue() Tạo vector rỗng deque(size_type n, const T& t) Tạo dqueue với copy n phần tử t reference operator[](size_type n) deque(size_type n) deque(const deque&) Trả lại phần tử thứ n vector Tạo dqueue với n phần tử Constructor dqueue ~deque() Destructor dqueue reference front() Trả lại phần tử dqueue reference back() Trả lại phần tử cuối dqueue deque& operator=(const deque&) const_reference front() const const_reference back() const Phép toán (=) Trả lại phần tử dqueue Trả lại phần tử cuối dqueue 38 1/18/2016 Các thành viên lớp dqueue: Thành viên void push_front(const T&) void push_back(const T&) Ý nghĩa Chèn phẩn tử vào vị trí Chèn phẩn tử vào vị trí cuối void pop_front() Loại phần tử vị trí void swap(deque&) Đổi nội dung hai dqueue void insert(iterator pos, size_type n, const T& x) Chèn n phần tử x vào trước vị trí pos void pop_back() iterator insert(iterator pos, const T& x) Loại phần tử vị trí cuối Chèn x vào trước vị trí pos iterator erase(iterator pos) Loại phần tử vị trí pos void clear() Loại tồn phần tử iterator erase(iterator first, iterator last) void resize(n, t = T()) Loại phần tử từ vị trí first đến vị trí last Thêm loại bớt phần tử cuối để dqueue có kích cỡ n Trả lại phần tử dqueue 4.10.3 STL SLIST Định nghĩa slist kiểu liệu danh sách liên kết đơn Đây kiểu liệu tuyến tính theo kiểu Forward không hỗ trợ thao tác backward Các phép thêm loại bỏ phần tử có độ phức tạp số Khai báo: slist L; //định nghĩa L slist theo tùy biến liệu T Ví dụ: slist L; //định nghĩa L slist theo tùy biến liệu int slist L; L.push_front(0); L.push_front(1); L.insert_after(L.begin(), 2); copy(L.begin(), L.end(), // Kết Ostream_oterator (cout, " ")); cout

Ngày đăng: 17/06/2023, 13:31

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN