1
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 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 đích 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.
UDPM--MH11-CTDL&GT
2
LỜI GIỚI THIỆU
Kiến thức môn học Cấu trúc dữ liệu giải thuật một trong những nền tản
bản của những người muốn tìm hiểu sâu về Công nghệ thông tin đặt biệt đối với việc
lập trình để giải quyết các bài toán trên máy tính điện tử. Các cấu trúc dữ liệu 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
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à 1 phương pháp lưu trữ dữ liệu trong máy
tính nhằm sử dụng một cách 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 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. Việc lựa chọn một cấu trúc dữ liệu có thể sẽ ảnh hưởng lớn tới việc lựa chọn
áp dụng giải thuật nào.
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 phân tích
sâu sắc hơn phạm, kết quả thực tế hơn, chúng tôi đã sdụng ngôn ngữ tựa
Pascal để minh hoạ cho các cấu trúc dữ liệu và thuật toán.
Mặc dầu rất nhiều cố gắng, nhưng không tránh khỏi những khiếm khuyết, rất
mong nhận được sự đóng góp ý kiến của độc giả để giáo trình được hoàn thiện hơn..
Cần Thơ, ngày 17 tháng 06 năm 2018
Tham gia biên soạn
1. Chủ biên Nguyễn Phát Minh
3
MỤC LỤC
TRANG
LI GII THIU .................................................................................................. 2
MC LC ............................................................................................................. 3
GIÁO TRÌNH MÔN HC/MÔ ĐUN .................................................................. 5
BÀI 1: THIT K VÀ PHÂN TÍCH GII THUT ............................................ 7
Mã bài: MH11 - 01 ................................................................................................ 7
1. M đầu .......................................................................................................... 7
2. Thiết kế gii thut .......................................................................................... 7
3. Phân tích gii thut ........................................................................................ 7
4. Mt s gii thuật cơ bản ................................................................................ 8
BÀI 2: CÁC KIU D LIỆU CƠ SỞ ................................................................ 11
Mã bài: MH11 - 02 .............................................................................................. 11
1. Các kiu d liu cơ bản ............................................................................... 11
2. Kiu d liu có cu trúc .............................................................................. 13
3. Kiu tp hp ................................................................................................ 15
BÀI 3: MNG, DANH SÁCH VÀ CÁC KIU D LIU TRỪU TƯỢNG .... 17
Mã bài: MH11 - 03 .............................................................................................. 17
1. Mng ............................................................................................................ 17
2. Danh sách liên kết ....................................................................................... 18
3. Các kiu d liu trừu tượng ........................................................................ 22
BÀI 4: CÂY ........................................................................................................ 32
Mã bài: MH11 - 04 .............................................................................................. 32
1. Khái nim v cây ......................................................................................... 32
2. Cây nh phân ............................................................................................... 33
BÀI 5: SP XP ................................................................................................. 43
Mã bài: MH11 - 05 .............................................................................................. 43
1. Sp xếp kiu chn, chèn, ni bt ................................................................ 43
2. Sp xếp kiểu phân đoạn .............................................................................. 46
3. Sp xếp kiu hòa nhp................................................................................. 46
4. Kim tra ....................................................................................................... 47
BÀI 6: TÌM KIM .............................................................................................. 48
4
Mã bài: MH11 - 06 .............................................................................................. 48
1. Tìm kiếm tun t ......................................................................................... 48
2. Tìm kiếm nh phân ...................................................................................... 50
3. Cây tìm kiếm nh phân ................................................................................ 51
TÀI LIU THAM KHO ................................................................................... 57
5
GIÁO TRÌNH MÔN HỌC/MÔ ĐUN
Tên môn học/mô đun: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT
Mã môn học/mô đun: MH 11
Vị trí, tính chất, ý nghĩa và vai trò của môn học/mô đun:
_ V trí: sau khi hc xong các môn hc Tin hc, Lập trình căn bản
_ Tính cht: Cu trúc d liu và gii thuật là môn cơ sở ngh bt buc.
_ Ý nghĩa và vai trò của môn học/mô đun:
Mục tiêu của môn học/mô đun:
_ Kiến thc:
- Hiểu được mi quan h gia cu trúc d liu gii thut trong vic y
dựng chương trình;
- Hiểu được ý nghĩa, cấu trúc, cách khai báo, c thao tác ca các loi cu
trúc d liu: mng, danh sách liên kết, cây các gii thuật bản x
các cu trúc d liệu đó;
_ K năng:
- Xây dựng đưc cu trúc d liu t ng minh các gii thut cho
mt s bài toán ng dng c th;
- Cài đặt đưc mt s gii thut trên ngôn ng lp trình C;
_ V năng lực t ch và trách nhim:
- Coi vic hc môn y mt nn tng cho các môn hc chuyên môn tiếp
theo, nghiêm túc tích cc trong vic hc thuyết m bài tp, ch
động tìm kiếm các ngun tài liệu liên quan đến môn hc.
Nội dung của môn học/mô đun:
S
TT
Tên chương, mục
Thi gian
Tng
s
thuyết
Thc
hành,
Kim
tra*
(LT
hoc
TH)
I
Chương 1: Thiết kế và phân tích gii thut
12
4
0
M đầu
0.5
0.5
0
Thiết kế gii thut
0.5
0.5
0
Phân tích gii thut
3
1
0
Mt s gii thuật cơ bản
8
2
0
II
Chương 2: Các kiu d liệu cơ sở
12
4
0