
Để đáp ứng nhu cầu học tập của các bạn sinh viên, nhất là sinh viên chuyên ngành
tin học, chúng tôi đã tiến hành biên soạn các giáo trình, bài giảng chính trong chương
trình học. Giáo trình được biên soạn theo đề cương chi tiết môn Cấu Trúc Dữ Liệu của
sinh viên chuyên ngành tin học của Khoa Công Nghệ Thông Tin Trường Đại Học Kinh
Doanh và Công Nghệ Hà nội . Mục tiêu của nó nhằm giúp các bạn sinh viên chuyên
ngành có một tài liệu cô đọng dùng làm tài liệu học tập. Chúng tôi nghĩ rằng các bạn
sinh viên không chuyên tin và những người quan tâm tới cấu trúc dữ liệu và giải thuật
cũng sẽ tìm được trong này những điều hữu ích
Giáo trình bao gồm 6 chương, trình bày về các cấu trúc dữ liệu và các giải
thuật cơ bản nhất trong tin học.
Chương 1 trình bày về phân tích và thiết kế thuật toán. Đầu tiên là cách phân
tích 1 vấn đề, từ thực tiễn cho tới chương trình, cách thiết kế một giải pháp cho vấn
đề theo cách giải quyết bằng máy tính. Tiếp theo, các phương pháp phân tích, đánh
giá độ phức tạp và thời gian thực hiện giải thuật cũng được xem xét trong chương.
Chương 2 trình bày về đệ qui, một khái niệm rất cơ bản trong toán học và khoa học
máy tính. Việc sử dụng đệ qui có thể xây dựng được những chương trình giải quyết
được các vấn đề rất phức tạp chỉ bằng một số ít câu lệnh, đặc biệt là các vấn đề
mang bản chất đệ qui.
Chương 3, 4, 5 trình bày về các cấu trúc dữ liệu được sử dụng rất thông dụng
như mảng và danh sách liên kết, ngăn xếp và hàng đợi, cây, đồ thị. Đó là các cấu
trúc dữ liệu cũng rất gần gũi với các cấu trúc trong thực tiễn.
Chương 6 trình bày về các thuật toán sắp xếp và tìm kiếm. Các thuật toán này
cùng với các kỹ thuật được sử dụng trong đó được coi là các kỹ thuật cơ sở cho lập
trình máy tính. Các thuật toán được xem xét bao gồm các lớp thuật toán đơn giản và
cả các thuật toán cài đặt phức tạp nhưng có thời gian thực hiện tối ưu.
Về nguyên tắc, các cấu trúc dữ liệu và các giải thuật có thể được biểu diễn và
cài đặt bằng bất cứ ngôn ngữ lập trình hiện đại nào. Tuy nhiên, để có được các phân
tích sâu sắc hơn và có kết quả thực tế hơn, tác giả đã sử dụng ngôn ngữ lập trình C
để minh hoạ cho các cấu trúc dữ liệu và thuật toán. Do vậy, ngoài các kiến thức cơ
bản về tin học, người đọc cần có kiến thức về ngôn ngữ lập trình C.