
UBND TỈNH THANH HÓA
TRƯỜNG CAO ĐẲNG CÔNG NGHIỆP THANH HÓA
------------
GIÁO TRÌNH
MÔN HỌC/MÔ ĐUN: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT
NGÀNH/NGHỀ: CÔNG NGHỆ THÔNG TIN(ƯDPM)
TRÌNH ĐỘ: TRUNG CẤP
(Ban hành kèm theo quyết định số /QĐ – TCĐCN ngày / / của Hiệu
trưởng trường Cao Đẳng Công Nghiệp Thanh Hóa)
Thanh Hóa, năm 2025

`
TUYÊN BỐ BẢN QUYỀN
Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể
được phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và
tham khảo.
Mọi mục đich khác mang tính lệch lạc hoặc sử dụng với mục đích kinh
doanh thiếu lành mạnh sẽ bị nghiêm cấm.

`
LỜI GIỚI THIỆU
Cấu trúc dữ liệu và giải thuật là một trong những môn học cơ bản của
sinh viên ngành Công nghệ thông tin. Các cấu trúc dữ liệu và các giải thuật
được xem như là 2 yếu tố quan trọng nhất trong lập trình, đúng như câu nói nổi
tiếng của Niklaus Wirth: Chương trình = Cấu trúc dữ liệu + Giải thuật
(Programs = Data Structures + Algorithms). Nắm vững các cấu trúc dữ liệu và
các giải thuật là cơ sở để sinh viên tiếp cận với việc thiết kế và xây dựng phần
mềm cũng như sử dụng các công cụ lập trình hiện đại.
Cấu trúc dữ liệu có thể được xem như là một phương pháp lưu trữ dữ liệu
trong máy tính nhằm sử dụng một cách có hiệu quả các dữ liệu này. Và để sử
dụng các dữ liệu một cách hiệu quả thì cần phải có các thuật toán áp dụng trên
các dữ liệu đó. Do vậy, cấu trúc dữ liệu và giải thuật là 2 yếu tố không thể tách
rời và có những liên quan chặt chẽ với nhau.
Tài liệu “Cấu trúc dữ liệu và giải thuật” bao gồm 7 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.
Mặc dù đã rất cố gắng trong quá trình biên soạn nhưng không thể tránh
khỏi những sai sót, rất mong nhận được sự góp ý của người đọc và đồng nghiệp
để giáo trình ngày càng được hoàn thiện hơn.
Xin chân thành cảm ơn!
Thanh Hóa, ngày tháng 04 năm 2025
Tham gia biên soạn
1. Vũ Thị Tuyết: Chủ biên
2. Thiều Thị Hải Yến
3. Lê Thị Bằng
1

`
MỤC LỤC
ĐỀ MỤC TRANG
LỜI GIỚI THIỆU..................................................................................................1
CHƯƠNG 1: THIẾT KẾ VÀ PHÂN TÍCH GIẢI THUẬT..................................1
Giới thiệu:..............................................................................................................1
1. THIẾT KẾ GIẢI THUẬT.................................................................................1
1.1. Khái niệm cấu trúc dữ kiệu và giải thuật....................................................1
1.2. Ngôn ngữ diễn đạt giải thuật.......................................................................2
1.2.1. Quy cách về cấu trúc chương trình...........................................................................2
1.2.2. Kí tự và biểu thức......................................................................................................2
1.2.3. Các câu lệnh hay các chỉ thị......................................................................................3
1.3. Thiết kế giải thuật.......................................................................................6
1.4. Mối quan hệ giữa cấu trúc dữ liệu và giải thuật..........................................9
2. PHÂN TÍCH GIẢI THUẬT............................................................................12
3. MỘT SỐ GIẢI THUẬT CƠ BẢN..................................................................12
3.1. Hoán vị hai phần tử...................................................................................12
3.2. Tìm số lớn nhất, nhỏ nhất của dãy số
........................................................13
3.2.1 Tìm số lớn nhất của dãy số......................................................................................13
3.2.2 Tìm số nhỏ nhất của dãy số......................................................................................13
3.3. Các bài toán đệ quy đơn giản
....................................................................13
3.3.1. Tính tổng n số tự nhiên đầu tiên
..............................................................................13
3.3.2. Tìm số lớn nhất của hai số a, b
................................................................................14
3.3.3. Hàm tính n!
.............................................................................................................14
3.3.5. Bài toán “Tháp Hà Nội”
..........................................................................................15
BÀI TẬP:.............................................................................................................18
CHƯƠNG 2: CÁC KIỂU DỮ LIỆU CƠ SỞ......................................................21
Giới thiệu:............................................................................................................21
1. CÁC KIỂU DỮ LIỆU CƠ BẢN.....................................................................21
2. KIỂU DỮ LIỆU CÓ CẤU TRÚC...................................................................22
BÀI TẬP:.............................................................................................................35
CHƯƠNG 3: MẢNG DỮ LIỆU.........................................................................37
Giới thiệu:............................................................................................................37
1. KHÁI NIỆM VỀ MẢNG................................................................................37
2. TRUY NHẬP CÁC PHẦN TỬ CỦA MẢNG................................................38
3. THAO TÁC CƠ BẢN VỚI MẢNG................................................................38
3.1. Nhập, xuất mảng.......................................................................................38
3.2. Tìm phần tử nhỏ nhất, lớn nhất
.................................................................40
3.3. Xóa phần tử mảng.....................................................................................40
3.4. Chèn phần tử mảng...................................................................................41
3.5. Sắp xếp phần tử mảng
...............................................................................41
3.5.1. Sắp xếp kiểu chọn
...................................................................................................41
3.5.2. Sắp xếp kiểu chèn
................................................................................................... 43
3.5.3. Sắp xếp kiểu nổi bọt
................................................................................................46
BÀI TẬP:.............................................................................................................49
CHƯƠNG 4: DANH SÁCH LIÊN KẾT.............................................................51
Giới thiệu:............................................................................................................51
2

`
1. KHÁI NIỆM VỀ DANH SÁCH LIÊN KẾT...............................................51
2. DANH SÁCH LIÊN KẾT ĐƠN.....................................................................51
2.1. Một số phép toán trên danh sách liên kết đơn
...........................................52
3. DANH SÁCH LIÊN KẾT VÒNG..................................................................56
BÀI TẬP:.............................................................................................................60
CHƯƠNG 5: NGĂN XẾP VÀ HÀNG ĐỢI.......................................................62
Giới thiệu:............................................................................................................62
1. NGĂN XẾP (STACK)....................................................................................62
1.1. Khái niệm
..................................................................................................62
BÀI TẬP:.............................................................................................................74
CHƯƠNG 6: CẤU TRÚC CÂY.........................................................................77
Giới thiệu:............................................................................................................77
1. KHÁI NIỆM CƠ BẢN VỀ CÂY....................................................................77
2. CÂY NHỊ PHÂN.............................................................................................78
2.1. Biểu diễn cây nhị phân
..............................................................................78
2.2. Duyệt cây nhị phân
...................................................................................78
2.3. Cài đặt cây nhị phân
..................................................................................78
3. CÂY NHỊ PHÂN TÌM KIẾM.........................................................................81
3.1. Khái niệm
..................................................................................................81
3.2. Các phép toán trên cây nhị phân tìm kiếm................................................81
BÀI TẬP:.............................................................................................................87
TÀI LIỆU THAM KHẢO...................................................................................91
3

