
BỘ NỘI VỤ
TRƯỜNG ĐẠI HỌC LAO ĐỘNG - XÃ HỘI
KHOA CÔNG NGHỆ THÔNG TIN
------
BÀI GIẢNG
CẦU TRÚC DỮ LIỆU VÀ GIẢI THUẬT
Nhóm biên soạn:
ThS. Nguyễn Sao Mai
ThS. Tạ Tường Vi
ThS. Nguyễn Nam Thắng
HÀ NỘI, 2025

LỜI NÓI ĐẦU
Cấu trúc dữ liệu và Giải thuật là một trong những học phần nền tảng và cốt lõi trong chương
trình đào tạo ngành Công nghệ thông tin. Môn học không chỉ giúp sinh viên hình thành tư duy logic
và kỹ năng giải quyết vấn đề bằng máy tính, mà còn đóng vai trò quan trọng trong việc thiết kế,
xây dựng và tối ưu hóa phần mềm.
Câu nói nổi tiếng của Niklaus Wirth – “Program = Data Structures + Algorithms” – đã thể hiện
rõ mối quan hệ gắn bó mật thiết giữa cấu trúc dữ liệu và giải thuật. Một cấu trúc dữ liệu phù hợp
không chỉ giúp lưu trữ và quản lý thông tin hiệu quả, mà còn tạo nền tảng để lựa chọn và triển khai
các thuật toán tối ưu. Ngược lại, một thuật toán hiệu quả cần được xây dựng dựa trên một mô hình
dữ liệu hợp lý. Vì vậy, hai yếu tố này cần được xem xét đồng thời và có tính gắn kết chặt chẽ trong
mọi ứng dụng tin học.
Tài liệu học tập này gồm 7 chương, trình bày các khái niệm cơ bản và quan trọng nhất của cấu trúc
dữ liệu và giải thuật:
Chương 1 đề cập đến phương pháp phân tích và thiết kế thuật toán, cách đánh giá độ phức
tạp về thời gian và không gian.
Chương 2 giới thiệu khái niệm đệ quy, một công cụ quan trọng trong giải thuật hiện đại.
Chương 3 – 6 lần lượt trình bày các cấu trúc dữ liệu cơ bản và phổ biến như mảng, danh
sách liên kết, ngăn xếp, hàng đợi, cây và đồ thị.
Chương 7 tập trung vào các thuật toán sắp xếp và tìm kiếm, được xem là kỹ thuật nền tảng
trong lập trình.
Mỗi chương đều có phần bài tập ôn luyện nhằm giúp sinh viên củng cố kiến thức, phát triển kỹ
năng vận dụng và tự kiểm tra quá trình học tập. Các phụ lục cuối tài liệu cung cấp hướng dẫn trả
lời, mã nguồn tham khảo và danh mục tài liệu học tập mở rộng.
Tuy có thể được triển khai bằng nhiều ngôn ngữ lập trình hiện đại, các ví dụ và minh họa trong tài
liệu được trình bày bằng ngôn ngữ lập trình C, nhằm giúp người học rèn luyện khả năng thao tác
trực tiếp với bộ nhớ và hiểu sâu bản chất thuật toán.
Tác giả hi vọng tài liệu này sẽ là một trợ thủ đắc lực cho sinh viên trong quá trình học tập và nghiên
cứu. Mọi góp ý xây dựng từ bạn đọc và đồng nghiệp sẽ là nguồn động lực quý báu để tài liệu ngày
càng hoàn thiện hơn.


I
MỤC LỤC
MỤC LỤC ..............................................................................................................................................I
CHƯƠNG 1 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT ..................................................................... 1
1.1 QUAN HỆ GIỮA CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT................................................... 1
1.2 CÁC BƯỚC XÂY DỰNG GIẢI THUẬT ................................................................................. 11
1.3 PHÂN TÍCH VÀ ĐÁNH GIÁ GIẢI THUẬT .......................................................................... 14
1.4 GIẢI THUẬT ĐỆ QUY ............................................................................................................. 17
1.5 TÓM TẮT CHƯƠNG 1............................................................................................................ 30
1.6 CÂU HỎI VÀ BÀI TẬP ........................................................................................................... 31
CHƯƠNG 2 MẢNG VÀ DANH SÁCH ............................................................................................. 32
2.1 CẤU TRÚC DỮ LIỆU KIỂU MẢNG (ARRAY) ..................................................................... 32
2.2 DANH SÁCH ............................................................................................................................ 33
2.3 TÓM TẮT CHƯƠNG 2............................................................................................................. 45
2.4 CÂU HỎI VÀ BÀI TẬP ............................................................................................................ 45
CHƯƠNG 3 NGĂN XẾP VÀ HÀNG ĐỢI ........................................................................................ 46
3.1 NGĂN XẾP (STACK) ............................................................................................................... 46
3.2 HÀNG ĐỢI (QUEUE) ............................................................................................................... 60
3.3 TÓM TẮT CHƯƠNG 3............................................................................................................. 65
3.4 CÂU HỎI VÀ BÀI TẬP ............................................................................................................ 66
CHƯƠNG 4 CÂY ................................................................................................................................ 67
4.1 KHÁI NIỆM .............................................................................................................................. 67
4.2 CÀI ĐẶT CÂY .......................................................................................................................... 68
4.3 DUYỆT CÂY............................................................................................................................. 70
4.4 CÂY NHỊ PHÂN ....................................................................................................................... 72
4.5 TÓM TẮT CHƯƠNG 4............................................................................................................. 75
4.6 CÂU HỎI VÀ BÀI TẬP ............................................................................................................ 76
CHƯƠNG 5 ĐỒ THỊ ........................................................................................................................... 77
5.1 CÁC KHÁI NIỆM CƠ BẢN .................................................................................................... 77
5.2 BIỂU DIỄN ĐỒ THỊ ................................................................................................................. 79
5.3 DUYỆT ĐỒ THỊ........................................................................................................................ 81
5.4 TÓM TẮT CHƯƠNG 5............................................................................................................. 85
5.5 CÂU HỎI VÀ BÀI TẬP ............................................................................................................ 86
CHƯƠNG 6 GIẢI THUẬT SẮP XẾP ................................................................................................ 87

II
6.1 BÀI TOÁN SẮP XẾP ................................................................................................................ 87
6.2 CÁC GIẢI THUẬT SẮP XẾP ĐƠN GIẢN ............................................................................. 88
6.3 QUICK SORT (SẮP XẾP NHANH) ........................................................................................ 95
6.4 HEAP SORT (SẮP XẾP VUN ĐỐNG) .................................................................................. 98
6.5 MERGE SORT (SẮP XẾP TRỘN) ....................................................................................... 106
6.6 TÓM TẮT CHƯƠNG 6 ........................................................................................................... 111
6.7 CÂU HỎI VÀ BÀI TẬP .......................................................................................................... 112
CHƯƠNG 7 GIẢI THUẬT TÌM KIẾM ............................................................................................ 113
7.1 BÀI TOÁN TÌM KIẾM ........................................................................................................... 113
7.2 TÌM KIẾM TUẦN TỰ ............................................................................................................ 113
7.3 TÌM KIẾM NHỊ PHÂN ........................................................................................................... 114
7.4 CÂY NHỊ PHÂN TÌM KIẾM .................................................................................................. 115
7.5 TÓM TẮT CHƯƠNG 7........................................................................................................... 120
7.6 CÂU HỎI VÀ BÀI TẬP .......................................................................................................... 120
MÃ NGUỒN THAM KHẢO ............................................................................................................ 121
TÀI LIỆU THAM KHẢO.................................................................................................................. 140

