Bài giảng Kỹ thuật lập trình
MỤC LỤC Chương 1: ĐẠI CƯƠNG VỀKỸTHUẬT LẬP TRÌNH CẤU TRÚC .3 1.1. Sơlược vềlịch sửlập trình cấu trúc.3 1.2. Cấu trúc lệnh, lệnh có cấu trúc, cấu trúc dữliệu .5 1.2.1. Cấu trúc lệnh (cấu trúc điều khiển) .5 1.2.2. Lệnh có cấu trúc .7 1.2.3. Cấu trúc dữliệu .7 1.3. Nguyên lý tối thiểu .8 1.3.1. Tập các phép toán .8 1.3.2. Tập các lệnh vào ra cơbản.11 1.3.3. Thao tác trên các kiểu dữliệu có cấu trúc.11 1.4. Nguyên lý địa phương .13 1.5. Nguyên lý nhất quán.15 1.6. Nguyên lý an toàn.16 1.7. Phương pháp Top-Down .18 1.8. Phương pháp Bottom - Up.22 Chương 2: DUYỆT VÀ ĐỆQUI .29 2.1. Định nghĩa bằng đệqui .29 2.2. Giải thuật đệqui .30 2.3. Thuật toán sinh kếtiếp .31 2.4. Thuật toán quay lui (Back track) .34 2.5. Thuật toán nhánh cận .37 Chương 3: NGĂN XẾP, HÀNG ĐỢI VÀ DANH SÁCH MÓC NỐI (STACK, QUEUE, LINK LIST).51 3.1. Kiểu dữliệu ngăn xếp và ứng dụng.51 3.1.1. Định nghĩa và khai báo .51 3.1.2. Các thao tác với stack .53 3.1.3. Ứng dụng của stack.53 3.2. Hàng đợi (Queue) .55 3.2.1. Định nghĩa và khai báo .55 3.2.2. Ứng dụng hàng đợi.57 3.3. Danh sách liên kết đơn .62 3.3.1. Giới thiệu và định nghĩa.62 3.3.2. Các thao tác trên danh sách móc nối .63 3.4. Danh sách liên kết kép.67 Chương 4: CẤU TRÚC DỮLIỆU CÂY (TREE).77 4.1. Định nghĩa và khái niệm .77 4.2. Cây nhịphân.78 4.3. Biểu diễn cây nhịphân .81 4.3.1. Biểu diễn cây nhịphân bằng danh sách tuyến tính .81 4.3.2. Biểu diễn cây nhịphân bằng danh sách móc nối .82 4.4. Các thao tác trên cây nhịphân.83 4.4.1. Định nghĩa cây nhịphân bằng danh sách tuyến tính.83 4.4.2. Định nghĩa cây nhịphân theo danh sách liên kết:.83 4.4.3. Các thao tác trên cây nhịphân .83 4.5. Các phép duyệt cây nhịphân (Traversing Binary Tree).88 4.5.1. Duyệt theo thứtựtrước (Preorder Travesal).88 4.5.2. Duyệt theo thứtựgiữa (Inorder Travesal) .89 4.5.3. Duyệt theo thứtựsau (Postorder Travesal) .89 4.6. Cài đặt cây nhịphân tìm kiếm.90 Chương 5: ĐỒTHỊ(GRAPH) .103 5.1. Những khái niệm cơbản của đồthị.103 5.1.1. Các loại đồthị.103 5.1.2. Một sốthuật ngữcơbản của đồthị.106 5.1.3. Đường đi, chu trình, đồthịliên thông.107 5.2. Biểu diễn đồthịtrên máy tính .107 5.2.1. Ma trận kề, ma trận trọng số.107 5.2.2. Danh sách cạnh (cung ) .109 5.2.3. Danh sách kề.110 5.3. Các thuật toán tìm kiếm trên đồthị.110 5.3.1. Thuật toán tìm kiếm theo chiều sâu .110 5.3.2. Thuật toán tìm kiếm theo chiều rộng (Breadth First Search).111 5.3.3. Kiểm tra tính liên thông của đồthị.112 5.3.4. Tìm đường đi giữa hai đỉnh bất kỳcủa đồthị.113 5.4. Đường đi và chu trình Euler .115 5.5. Đường đi và chu trình Hamilton.118 5.6. Cây bao trùm .119 5.6.1. Khái niệm và định nghĩa .119 5.6.2. Tìm một cây bao trùm trên đồthị.120 5.6.3. Tìm cây bao trùm ngắn nhất.121 5.6.4. Thuật toán Kruskal.122 5.6.5. Thuật toán Prim.122 5.7. Bài toán tìm đường đi ngắn nhất .123 5.7.1. Phát biểu bài toán .123 5.7.2. Thuật toán Dijkstra.124 5.7.3. Thuật toán Floy .124 Chương 6: SẮP XẾP VÀ TÌM KIẾM (SORTING AND SEARCHING).131 6.1. Đặt bài toán .131 6.2. Giải thuật Selection Sort.132 6.3. Giải thuật Insertion Sort .134 6.4. Giải thuật Bubble Sort .136 6.5. Giải thuật Shaker Sort .137 6.6. Giải thuật Quick Sort.139 6.7. Giải thuật Heap Sort .141 6.8. Giải thuật Merge Sort .143 6.9. Tìm kiếm (Searching).145 6.9.1. Tìm kiếm tuần tự(Sequential Searching) .146 6.9.2. Tìm kiếm nhịphân (Binary Searching).147 TÀI LIỆU THAM KHẢO .152 MỤC LỤC .153
Các file đính kèm theo tài liệu này:
- BAIGIANGKYTHUATLAPTRINH.pdf