1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình Cấu trúc dữ liệu và giải thuật (Nghề: Lập trình máy tính) - CĐ Cơ Giới Ninh Bình

152 14 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 152
Dung lượng 908,64 KB

Nội dung

(NB) Giáo trình Cấu trúc dữ liệu và giải thuật cung cấp cho người học các kiến thức: Giới thiệu về cấu trúc dữ liệu và giải thuật; Kiểu dữ liệu nâng cao; Danh sách; Ngăn xếp và hàng đợi; Sắp xếp và tìm kiếm. Mời các bạn cùng tham khảo.

BỘ NƠNG NGHIỆP VÀ PHÁT TRIỂN NƠNG THƠN TRƯỜNG CAO ĐẲNG CƠ GIỚI NINH BÌNH GIÁO TRÌNH MƠN HỌC: MH19_CẤU TRÚC DỮ LIỆU  VÀ GIẢI THUẬT NGHỀ: LẬP TRÌNH MÁY TÍNH TRÌNH ĐỘ: Cao đẳng/ trung cấp Ban hành kèm theo Quyết định số:        /QĐ­…TCGNB  ngày…….tháng….năm   của Hiệu trưởng Trường Cao Đẳng Cơ giới Ninh   Bình Ninh Bình, năm 2018 TUN 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 ngun 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 Lời giới thiệu Các kiến thức về cấu trúc dữ liệu (CTDL) và giải thuật đóng vai trị quan  trọng trong việc đào tạo nghề Lập trình máy tính. Sách này đựơc hình thành trên  cơ sở các bài giảng về CTDL và giải thuật mà tơi cùng các đồng nghiệp đã đọc  nhiều năm tại khoa Tốn­Cơ­Tin học ­ Trường Đại học Khoa học Tự  nhiên –  Đại học Quốc Gia Hà Nội; Khoa Cơng nghệ thơng tin ­ Đại học Bách Khoa Hà  Nội; Khoa Cơng nghệ  thơng tin ­ Đại học Giao thơng vận tải. Sách được biên  soạn chủ yếu để làm tài liệu tham khảo cho học sinh, sinh viên nghề Lập trình  máy tính, nhưng nó cũng rất bổ  ích cho các độc giả  khác cần có hiểu biết đầy  đủ hơn về CTDL và giải thuật Giáo trình này gồm bốn chương Chương 1. Giới thiệu về cấu trúc dữ liệu và giải thuật Chương 2. Kiểu dữ liệu  nâng cao Chương 3. Danh sách Chương 4. Ngăn xếp và hàng đợi Chương 5. Sắp xếp và tìm kiếm Để biên soạn giáo trình này, chúng tơi đã tham khảo các tài liệu: Cấu trúc  dữ liệu và giải thuật, PTS Đinh Mạnh Tường; Lê Minh Hồng, Cấu trúc dữ liệu   và giải thuật Giáo trình Cấu trúc dữ  liệu và giải thuật đã được Hổi đồng thẩm định  Trường Cao đẳng nghề Cơ Giới Ninh Bình xét duyệt. Tuy nhiên trong q trình   biên soạn khơng tránh khỏi những sai sót, rất mong được sự  đóng góp q báu  chân thành của bạn đọc Ninh Bình, ngày    tháng    năm 2018 Tham gia biên soạn: Chủ biên Đoàn Xuân Luận Phạm Thị Thoa Nguyễn Anh Văn Mục lục  Lời giới thiệu                                                                                                                     4  Mục lục                                                                                                                              5  Chương 1                                                                                                                           10  Giới thiệu cấu trúc dữ liệu và giải thuật                                                                        10  1. Mối liên hệ giữa cấu trúc dữ liệu và giải thuật                                                     10  1.1. Xây dựng cấu trúc dữ liệu                                                                                10  1.2. Xây dựng giải thuật                                                                                           10  1.3. Mối quan hệ giữa cấu trúc dữ liệu và giải thuật                                             11  2. Kiểu dữ liệu và mơ hình dữ liệu                                                                             11  2.1. Biểu diễn dữ liệu                                                                                              11  2.3. Hệ kiểu của ngôn ngữ Pascal                                                                           16  2.4. Mơ hình dữ liệu và kiểu dữ liệu trừu tượng                                                    18  3. Thiết kế và giải thuật                                                                                               22  3.1. Các tiêu chuẩn đánh giá cấu trúc dữ liệu                                                         22  3.2. Đánh giá độ phức tạp của thuật toán                                                                23  Chương 2                                                                                                                           25  Các kiểu dữ liệu nâng cao                                                                                                25  1. Mảng                                                                                                                         25  2. Con trỏ                                                                                                                       27  2.1. Con trỏ và địa chỉ                                                                                                28  2.2. Con trỏ và mảng một chiều                                                                              29  2.2.2. Tên mảng là một hằng địa chỉ                                                                         30  2.2.3. Con trỏ trỏ tới các phần tử của mảng một chiều                                         30  2.3. Con trỏ và mảng nhiều chiều                                                                           34  2.4. Kiểu con trỏ, kiểu địa chỉ, các phép toán trên con trỏ                                       36  3. Cấu trúc và hợp                                                                                                         44  3.1. Cấu trúc (struct)                                                                                                 44  3.2. Kiểu union                                                                                                          45  4. File                                                                                                                             46  4.1. Khái niệm về tệp tin                                                                                         46 4.2. Khai báo sử dụng tệp ­  một số hàm thường dùng khi thao tác trên tệp                                                                                                                            48       Chươ ng 3                                                                                                                              54  Danh sách                                                                                                                          54  1. Các khái niệm                                                                                                           54  1.1. Khái niệm về danh sách                                                                                    54  1.2. Các phép toán trên danh sách                                                                             54  2. Lưu tữ kế tiếp đối với danh sách tuyến tính                                                           56  2.1. Định nghĩa                                                                                                          56  2.2. Danh sách liên kết đơn (Singly Linked List)                                                     56  3. Lưu trữ móc nối đối với danh sách tuyến tính                                                        85  3.1. Cấu trúc dữ liệu                                                                                                 85  3.2. Các thao tác trên danh sách                                                                                87  Chương 4                                                                                                                         111  Ngăn xếp và hàng đợi                                                                                                     111  1. Định nghĩa ngăn xếp (stack)                                                                                   111  2. Lưu trữ stack bằng mảng                                                                                       113  2.1. Khởi tạo ngăn xếp                                                                                           113  2.2. Thêm (Đẩy) một phần tử vào ngăn xếp (Push)                                              114  2.3. Lấy nội dung một phần tử trong ngăn xếp ra để xử lý (Pop)                       115  2.4. Hủy ngăn xếp                                                                                                   116  3.Ví dụ về ứng dụng stack                                                                                         116  4. Định nghĩa hàng đợi(Queue)                                                                                   120  5. Lưu trữ queue bằng mảng                                                                                      122  5.1. Khởi tạo hàng đợi (Initialize)                                                                          122  5.2. Thêm (Đưa) một phần tử vào hàng đợi (Add)                                                123  5.3. Lấy nội dung một phần tử trong hàng đợi ra để xử lý (Get)                         124  5.4. Hủy hàng đợi                                                                                                   126  6. Stack và queue móc nối                                                                                           126  6.1. Stack móc nối                                                                                                   126  6.2. Queue móc nối                                                                                                 129  Chương 5                                                                                                                         132  Sắp xếp và tìm kiếm                                                                                                      132  1. Giới thiệu về sắp xếp và tìm kiếm                                                                       133  1.1. Giới thiệu về sắp xếp                                                                                     133  1.2. Giới thiệu về tìm kiếm                                                                                   134  2. Các phương pháp sắp xếp                                                                                      134  2.1. Sắp xếp kiểu chọn (Selection sort)                                                                 134  2.2. Thuật toán sắp xếp nổi bọt (bubble sort)                                                       136  2.3. Thuật toán sắp xếp kiểu chèn (insertion sort)                                                137  2.4. Thuật toán sắp xếp kiểu phân đoạn (quick sort)                                            139  2.5. Thuật toán sắp xếp trộn                                                                                  144  3. Các phương pháp tìm kiếm                                                                                    149  3.1. Tìm kiếm tuần tự (Sequential search)                                                             149  3.2. Tìm kiếm nhị phân (Binary search)                                                                 149  TÀI LIỆU THAM KHẢO                                                                                               152 MƠN HỌC CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Tên Mơn học: Cấu trúc dữ liệu và giải thuật Mã mơn học: MH19 Vị trí, tính chất, ý nghĩa và vai trị của mơn học:  ­ Vị  trí mơn học: Mơn học này được học sau mơn học Tin học căn bản, Lập   trình căn bản ­ Tính chất mơn học: Mơn học này u cầu phải có tư  duy logic và các kiến  thức về lập trình căn bản, lập trình hướng đối tượng ­ Ý nghĩa, vai trị của mơn học: Đây là mơn học cơ sở ngành của các ngành liên  quan đến cơng nghệ  thơng tin, cung cấp cho sinh viên các kiến thức cơ  bản   về lập trình Mục tiêu của mơn học:  ­ Kiến thức:  + Trình bày được mối liên hệ giữa cấu trúc dữ liệu và giải thuật; cách khai  báo và sử dụng các kiểu dữ liệu nâng cao; + Trình bày được các kỹ thuật ngăn xếp và hàng đợi, các thuật tốn sắp xếp   và tìm kiếm, các loại danh sách liên kết ­ Kỹ năng:  + Phân tích được các loại dữ  liệu, giải thuật và kết hợp được dữ  liệu và   giải thuật; + Cài đặt được các thuật tốn sắp xếp và tìm kiếm;  + Cài đặt được các thuật tốn trên các cấu trúc dữ  liệu: mảng, danh sách,   danh sách liên kết ­ Thái độ: + Rèn luyện tính cẩn thận, tỉ  mỉ, chính xác, sáng tạo, làm việc độc lập và  theo nhóm; + Rèn luyện kỹ năng lập trình; + Đảm bảo an tồn cho người và trang thiết bị.  Nội dung của mơn học: Số  TT I II III IV IV Thời gian Lý  Thực  Kiểm  Tên chương mục Tổng  Chương 1: Giới thiệu cấu trúc dữ  liệu  số và giải thuật 1. Mỗi liên hệ  giữa cấu trúc dữ  liệu và  1 giải thuật 2. Kiểu dữ liệu và mơ hình dữ liệu 3. Thiết kế và giải thuật Chương 2: Kiểu dữ liệu nâng cao 1. Kiểu mảng 2. Con trỏ 3. Cấu trúc và hợp 4. File Chương 3: Danh sách  1. Các khái niệm 2. Lưu trữ kế tiếp đối với danh sách tuyến  2 20 5 5 20 2 1 2 14 4 3 13 tính   Lưu   trữ   móc   nối   đối   với   danh   sách  tuyến tính Chương 4: Ngăn xếp và hàng đợi 1. Định nghĩa ngăn xếp (stack) 2. Lưu trữ stack bằng mảng 3.Ví dụ về ứng dụng stack 4. Định nghĩa hàng đợi(Queue) 5. Lưu trữ queue bằng mảng  6. Stack và queue móc nối Chương 5: Sắp xếp và tìm kiếm 1. Giới thiệu về sắp xếp và tìm kiếm 2. Các phương pháp sắp xếp  3. Các phương  pháp tìm kiếm  Cộng 20 5 25 10 12 90 1 1 2 2 30 11 3 18 56 1 thuyết hành  tra 1 Chương 1 Giới thiệu cấu trúc dữ liệu và giải thuật Mã chương: MH19_CH01 Giới thiệu: Bài này giới thiệu về mối liên hệ giữa cấu trúc dữ liệu và giải thuật Mục tiêu:  ­ Trình bày được kiến thức cở  bản về  cấu trúc dữ  liệu, giải thuật, kiểu dữ  liệu, mơ hình dữ liệu; ­ Phân tích được giải thuật;  ­ Sử dụng được các phương pháp phân tích, thiết kế giải thuật; ­ Rèn luyện tính cẩn thận, tỉ mỉ, chính xác, sáng tạo, thực hiện các thao tác an   tồn với máy tính Nội dung: 1. Mối liên hệ giữa cấu trúc dữ liệu và giải thuật 1.1. Xây dựng cấu trúc dữ liệu ­ Có thể  nói rằng khơng có một chương trình máy tính nào mà khơng có dữ  liệu để  xử  lý. Dữ  liệu có thể  là dữ  liệu đưa vào (input data), dữ  liệu trung  gian hoặc dữ  liệu đưa ra (output data). Do vậy, việc tổ  chức để  lưu trữ  dữ  liệu phục vụ  cho chương trình có ý nghĩa rất quan trọng trong tồn bộ  hệ  thống chương trình. Việc xây dựng cấu trúc dữ  liệu quyết định rất lớn đến  chất lượng cũng như  cơng sức của người lập trình trong việc thiết kế, cài   đặt chương trình 1.2. Xây dựng giải thuật ­ Khái niệm giải thuật hay thuật giải mà nhiều khi cịn được gọi là thuật tốn   dùng để chỉ phương pháp hay cách thức (method) để giải quyết vần đề. Giải   thuật có thể được minh họa bằng ngơn ngữ tự nhiên (natural language), bằng  sơ đồ (flow chart) hoặc bằng mã giả (pseudo code). Trong thực tế, giải thuật   thường được minh họa hay thể  hiện bằng mã giả  tựa trên một hay một số  10 Đối với thuật tốn sắp xếp kiểu chèn, thì chi phí thời gian thực hiện thuật tốn  phụ thuộc vào tình trạng dãy khố ban đầu. Nếu coi phép tốn tích cực ở đây là   phép so sánh tmp 

Ngày đăng: 28/05/2021, 11:24

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w