• Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 9: Cấu trúc dữ liệu hàng đợiBài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 9: Cấu trúc dữ liệu hàng đợi

    Một số ứng dụng của queue  Các ứng dụng trực tiếp - Danh sách hàng đợi - Truy nhập các nguồn dùng chung (ví dụ máy in trong mạng cục bộ) - Đa lập trình Các ứng dụng không trực tiếp - Cấu trúc dữ liệu hỗ trợ cho các thuật toán - Làm thành phần của các cấu trúc dữ liệu khácCài đặt queue bằng mảng  Sử dụng một mảng kiểu vòng có kích thước ...

    pdf12 trang | Chia sẻ: thanhle95 | Ngày: 28/06/2021 | Lượt xem: 517 | Lượt tải: 1

  • Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 8: Cấu trúc dữ liệu ngăn xếpBài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 8: Cấu trúc dữ liệu ngăn xếp

    Cấu trúc dữ liệu trừu tượng (ADT- Abtract Data Type)  Các thành phần của một ADT  Dữ liệu được lưu trữ  Các phép toán trên dữ liệu  Các điều kiện xảy ra lỗi kết hợp với các phép toán  Ví dụ: Mô hình ADT của một hệ thống kho hàng đơn giản - Dữ liệu được lưu trữ theo phiếu mua/bán - Các phép toán: + Hóa đơn buy(kho, số lượng, giá) + Hó...

    pdf28 trang | Chia sẻ: thanhle95 | Ngày: 28/06/2021 | Lượt xem: 710 | Lượt tải: 1

  • 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 (Linked List)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 (Linked List)

    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

    pdf25 trang | Chia sẻ: thanhle95 | Ngày: 28/06/2021 | Lượt xem: 778 | Lượt tải: 1

  • Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 6: Véc tơ (Vector)Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 6: Véc tơ (Vector)

    Các thao tác trên Vector  int getAtRank(int r, object &o): Trả lại phần tử có chỉ số r, nhưng không loại bỏ nó  int replaceAtRank(int r, object o, object & o1): Thay thế phần tử có chỉ số r bằng phần tử o và trả lại phần tử bị thay thế  int insertAtRank(int r, object o): Chèn phần tử o vào vị trí r  int removeAtRank(int r, object &o): loạ...

    pdf28 trang | Chia sẻ: thanhle95 | Ngày: 28/06/2021 | Lượt xem: 664 | Lượt tải: 1

  • Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 5: Đệ qui (Recursion)Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 5: Đệ qui (Recursion)

    Đệ qui tuyến tính – Đệ qui 1 lần  Kiểm tra trường hợp cơ sở.  Bắt đầu bằng việc kiểm tra các trường hợp cơ sở ( ở đó phải có ít nhất một trường hợp). Đây chính là điều kiện để kết thúc đệ qui.  Các lời gọi đệ qui hàm phải thực sự hướng quá trình đệ qui về trường hợp cơ sở (để kết thúc đệ qui).  Đệ qui một lần.  Thực hiện gọi đệ qui chỉ...

    pdf26 trang | Chia sẻ: thanhle95 | Ngày: 28/06/2021 | Lượt xem: 556 | Lượt tải: 1

  • Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 4: Phân tích các thuật toánBài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 4: Phân tích các thuật toán

    Tính hiệu quả của thuật toán  Thuật toán đơn giản, dễ hiểu  Thuật toán dễ cài đặt  Thuật toán cần ít bộ nhớ  Thuật toán chạy nhanh  Khi cài đặt thuật toán chỉ để sử dụng một số ít lần thì ưu tiên tiêu chí 1 và 2  Khi cài đặt thuật toán mà sử dụng rất nhiều lần, trong nhiều chương trình khác nhau: sắp xếp, tìm kiếm, đồ thị thì ưu tiên...

    pdf48 trang | Chia sẻ: thanhle95 | Ngày: 28/06/2021 | Lượt xem: 712 | Lượt tải: 1

  • Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 3: Cơ bản về lớp trong C++Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 3: Cơ bản về lớp trong C++

    I. Lập trình hướng thủ tục và hướng đối tượng • Cả hai cách tiếp cận đều thực hiện theo phương pháp tinh chỉnh từng bước (stepwise refinement) • Tiếp cận hướng thủ tục (Function Oriented): – Tập thung vào các hàm và việc phân rã các hàm – Các cấu trúc dữ liệu (ở mức ngôn ngữ lập trình) được định nghĩa sớm. – Các cấu trúc dữ liệu khó có thể ...

    pdf35 trang | Chia sẻ: thanhle95 | Ngày: 28/06/2021 | Lượt xem: 800 | Lượt tải: 1

  • Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 2: Ngôn ngữ lập trình C++Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 2: Ngôn ngữ lập trình C++

    I. Giới thiệu • Ngôn ngữ lập trình C++ là ngôn ngữ được phát triển dựa trên ngôn ngữ lập trình C. • Do đó về cơ bản, cú pháp của C++ giống với cú pháp của C. Tuy nhiên nó có một số mở rộng sau đây: – Nhập, xuất dữ liệu (cout, cin) – Hàm có đối mặc định, hàm có đối tham chiếu – Nạp chồng hàm (overload function) – Hàm mẫu – Lớp (có khả năng...

    pdf16 trang | Chia sẻ: thanhle95 | Ngày: 28/06/2021 | Lượt xem: 510 | Lượt tải: 1

  • Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 1: Bài mở đầuBài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 1: Bài mở đầu

    I. Mục đích môn học 1. Cung cấp những kiến thức cơ bản, nền tảng về một số CTDL và thuật toán cơ sở để xây dựng các hệ thống phần mềm lớn và phức tạp. 2. Giúp SV cách thức tổ chức lưu trữ dữ liệu trong bộ nhớ của máy tính và làm thế nào để sử dụng nó một cách có hiệu quả trong các chương trình. Sử dụng những kiến thức này để xây dựng các CT...

    pdf13 trang | Chia sẻ: thanhle95 | Ngày: 28/06/2021 | Lượt xem: 698 | Lượt tải: 1

  • Bài giảng Cấu trúc dữ liệu và giải thuật - Chương: Bảng băm - Văn Chí NamBài giảng Cấu trúc dữ liệu và giải thuật - Chương: Bảng băm - Văn Chí Nam

    Khái quát về hash Vấn đề: Cho trước 1 tập S gồm các phần tử được đặc trưng bởi giá trị khóa. Trên giá trị các khóa này có quan hệ thứ tự. Tổ chức S như thế nào để tìm kiếm 1 phần tử có khóa k cho trước có độ phức tạp ít nhất trong giới hạn bộ nhớ cho phép? Ý tưởng: Biến đổi khóa k thành một số (bằng hàm hash) và sử dụng số này như là địa ch...

    pdf13 trang | Chia sẻ: thanhle95 | Ngày: 28/06/2021 | Lượt xem: 636 | Lượt tải: 1