4 Cấu trúc dữ liệu và Giải thuật
http://www.ebook.edu.vn TRUỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN
MỤC LỤC
MỤC LỤC................................................................................................................................................................. 4
TỔNG QUAN VỀ THUẬT TOÁN VÀ CẤU TRÚC DỮ LIỆU............................................................................6
I. CÁC BƯỚC CƠ BẢN KHI GIẢI QUYẾT BÀI TOÁN TIN HỌC..............................................................6
I.1. Xác định bài toán ............................................................................................................................... 6
I.2. Xác đinh cấu trúc dữ liệu ................................................................................................................... 6
I.3. Tìm thuật toán .................................................................................................................................... 7
I.4. Lập trình............................................................................................................................................. 8
I.5. Kiểm thử............................................................................................................................................. 9
I.6. Tối ưu hoá chương trình ..................................................................................................................10
II. DIỄN TẢ THUẬT TOÁN..........................................................................................................................11
II.1. Dùng lưu đồ...................................................................................................................................... 11
II.2. Dùng ngôn ngữ lập trình cụ thể....................................................................................................... 12
II.3. Dùng ngôn ngữ giả........................................................................................................................... 13
III. THUẬT TOÁN ĐỆ QUI .......................................................................................................................16
III.1. Khái niệm đệ qui ..............................................................................................................................16
III.2. Thuật toán đệ qui ............................................................................................................................. 16
III.3. Hiệu lực của đệ qui ..........................................................................................................................18
III.4. Thuật toán quay lui .......................................................................................................................... 19
IV. ĐÁNH GIÁ THUẬT TOÁN.................................................................................................................20
IV.1. Phân tích thuật toán ......................................................................................................................... 20
IV.2. Xác đinh độ phức tạp tính toán của thuật toán ................................................................................ 22
DANH SÁCH.......................................................................................................................................................... 26
I. KHÁI NIỆM DANH SÁCH.......................................................................................................................26
II. BIỂU DIỄN DANH SÁCH TRÊN MÁY TÍNH ........................................................................................27
III. MẢNG VÀ DANH SÁCH ĐẶC...........................................................................................................27
III.1. Cài đặt mảng .................................................................................................................................... 27
III.2. Các thao tác trên danh sách............................................................................................................. 27
IV. DANH SÁCH LIÊN KẾT .....................................................................................................................30
IV.1. Danh sách nối đơn ........................................................................................................................... 31
IV.2. Danh sách nối vòng..........................................................................................................................34
IV.3. Danh sách nối kép............................................................................................................................ 37
IV.4. Đa danh sách.................................................................................................................................... 39
V. NGĂN XẾP ...............................................................................................................................................39
V.1. Định nghĩa ngăn xếp ........................................................................................................................ 39
V.2. Cài đặt ngăn xếp bằng mảng............................................................................................................ 40
V.3. Cài đặt ngăn xếp bằng danh sách liên kết đơn ................................................................................ 42
V.4. Ứng dụng ngăn xếp để khử đệ qui.................................................................................................... 43
VI. HÀNG ĐỢI ...........................................................................................................................................45
VI.1. Định nghĩa hàng đợi ........................................................................................................................ 45
VI.2. Cài đặt hàng đợi bằng mảng............................................................................................................ 46
VI.3. Cài đặt hàng đợi bằng danh sách liên kết đơn................................................................................. 48
CÂY .........................................................................................................................................................................50
I. MỘT SỐ KHÁI NIỆM VỀ CÂY................................................................................................................50
I.1. Khái niệm ......................................................................................................................................... 50
I.2. Biểu diễn cây .................................................................................................................................... 51
I.3. Duyệt cây..........................................................................................................................................53
II. CÂY NHỊ PHÂN .......................................................................................................................................54
II.1. Định nghĩa........................................................................................................................................ 54
II.2. Cài đặt cây nhị phân ........................................................................................................................ 55
II.3. Các phép duyệt cây nhị phân ........................................................................................................... 57
III. CÂY BIỂU DIỄN BIỂU THỨC............................................................................................................58