Nội dung của giáo trình bao gồm 9 chương: giới thiệu chung; thiết kế và phân tích giải thuật; đệ quy; mảng và danh sách tuyến tính; danh sách móc nối; cây; đồ thị; sắp xếp; tìm kiếm. Mời các bạn cùng tham khảo giáo trình để nắm chắc kiến thức.
GIỚI THIỆU CHUNG
Thuật toán và cấu trúc dữ liệu
Theo Niklaus Wirth: Thuật toán + Cấu trúc dữ liệu = Chương trình.
Ví dụ: Cho 1 dãy các phần tử, có thể biểu diễn dưới dạng mảng hoặc danh sách.
Cấu trúc dữ liệu và thuật toán có mối quan hệ chặt chẽ, vì vậy việc nghiên cứu các cấu trúc dữ liệu phải đi đôi với việc phát triển các thuật toán xử lý tương ứng.
Một số vấn đề liên quan
Việc chọn lựa cấu trúc dữ liệu phù hợp để tổ chức dữ liệu đầu vào và đầu ra là rất quan trọng, từ đó phát triển thuật toán xử lý hiệu quả nhằm đạt được kết quả mong muốn cho bài toán.
Ta cần phân biệt 2 loại quy cách dữ liệu:
Quy cách biểu diễn hình thức, hay còn gọi là cấu trúc logic của dữ liệu, là yếu tố quan trọng trong các ngôn ngữ lập trình Mỗi ngôn ngữ lập trình xác định một bộ cấu trúc logic dữ liệu riêng, và dữ liệu cần được mô tả bằng kiểu dữ liệu tương ứng Ví dụ, trong ngôn ngữ lập trình C, các kiểu dữ liệu bao gồm Struct, Union và File.
Quy cách lưu trữ là phương pháp biểu diễn cấu trúc dữ liệu trong bộ nhớ, ví dụ như cấu trúc dữ liệu mảng được lưu trữ theo quy tắc lưu trữ kế tiếp.
Có 2 quy cách lưu trữ:
Lưu trữ trong: ví dụ RAM.
Lưu trữ ngoài: ví dụ đĩa (disk).
Ngôn ngữ diễn đạt thuật toán
Ngôn ngữ diễn đạt thuật toán trong giáo trình này được quy ước là ngôn ngữ tựa C++, có đặc điểm tương tự như Turbo C++ Điều này giúp cho việc chuyển đổi chương trình từ ngôn ngữ tựa C++ sang C++ trở nên dễ dàng hơn.
1.3.1 Cấu trúc của một chương trình chính: void main()
• Để đơn giản, chương trình có thể không cần viết khai báo Tuy nhiên có thể mô tả trước chương trình bằng ngôn ngữ tự nhiên.
• Phần thuyết minh được đặt giữa 2 dấu /* , */ hoặc // để ghi chú trên 1 dòng.
Các lệnh của chương trình dùng để diễn tả thuật toán
Ví dụ: void main() /* Chuong trinh chuyen so he 10 thanh he 2*/ { cout > n; /* Nhap n la so he cs 10*/
} cout