Giáo trình Cấu trúc dữ liệu và giải thuật - Nghề: Công nghệ thông tin (Cao đẳng) - CĐ Kỹ Thuật Công Nghệ Bà Rịa-Vũng Tàu

86 62 0
Giáo trình Cấu trúc dữ liệu và giải thuật - Nghề: Công nghệ thông tin (Cao đẳng) - CĐ Kỹ Thuật Công Nghệ Bà Rịa-Vũng Tàu

Đ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

(NB) Giáo trình Cấu trúc dữ liệu và giải thuật nhằm cung cấp cho sinh viên các thuật toán tổng quát, danh sách liên kết, và các giải thuật sắp xếp, tìm kiếm. Từ đó sinh viên sẽ từng bước cải tiến thuật toán để xây dựng được những chương trình hiệu quả và có tính ứng dụng cao. Mục đích của giáo trình là trang bị cho học viên những kiến thức và kỹ năng phân tích xây dựng được thuật toán kết hợp với giải thuật.

ỦY BAN NHÂN DÂN TỈNH BR – VT TRƯỜNG CAO ĐẲNG NGHỀ GIÁO TRÌNH MƠ ĐUN CẤU TRÚC DỮ LIỆU VÀ GIẢI  THUẬT NGHỀ CƠNG NGHỆ THƠNG TIN TRÌNH ĐỘ CAO ĐẲNG  Ban hành kèm theo Quyết định số: 01/QĐ­CĐN   ngày 04 tháng 01 năm 2016   của Hiệu trưởng trường Cao đẳng nghề tỉnh Bà Rịa – Vũng Tàu Bà Rịa – Vũng Tàu, năm 2016 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 Giáo trình cấu trúc dữ  liệu và giải thuật dùng cho học sinh hệ  Cao   Đẳng và Trung cấp của nghề lập trình máy tính và hệ cao đẳng chun ngành  cơng nghệ  thơng tin  ứng dụng phần mềm trong trường Cao đẳng nghề  Tỉnh  BR – VT. Nhằm cung cấp cho sinh viên các thuật tốn tổng qt, danh sách  liên kết, và các giải thuật sắp xếp, tìm kiếm. Từ  đó sinh viên sẽ  từng bước  cải tiến thuật tốn để xây dựng được những chương trình hiệu quả và có tính   ứng dụng cao. Mục đích của giáo trình là trang bị  cho học viên những kiến  thức và kỹ năng phân tích  xây dựng được thuật tốn kết hợp với giải thuật Để có thể nắm bắt các kiến thức học sinh cần  được trang bị các kiến  thức về  mơn lập trình căn bản. Ngơn ngữ  lập trình được chọn để  minh họa   các kiến thức trên là Dev C++.  Trong qua trình biên soạn giáo trình, chắn chắn rằng trong giáo trình sẽ  cịn nhiều khiếm khuyết, tác giả  mong muốn nhận được các ý kiến q báu  đóng góp của đồng nghiệp cũng như  bạn đọc để  giáo trình này có thể  hồn  thiện hơn nữa về mặt nội dung cũng như hình thức trong lần tái bản sau Bà Rịa – Vũng Tàu, ngày 02 tháng 01 năm 2016                                                       Biên soạn Nguyễn Thị Mai MỤC LỤC        TRANG CHƯƠNG TRÌNH MÔ ĐUN BÀI GIỚI THIỆU CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 10 Mối liên hệ giải thuật cấu trúc liệu 10 1.1 Giải thuật 10 1.2 Dữ liệu 10 1.3 Mối quan hệ cấu trúc liệu giải thuật 11 Kiểu liệu, mơ hình liệu, kiểu liệu trừu tượng 11 2.1.Khái niệm kiểu liệu 11 2.2 Mơ hình kiểu liệu 12 2.3 Kiểu liệu trừu tượng 13 Thiết kế phân tích giải thuật 13 3.1 Thiết kế thuật toán 13 3.2 Phân tích tính đắn giải thuật 13 3.3 Phân tích tính đơn giản 14 Một số ví dụ thiết kế phân tích giải thuật 14 BÀI LÀM VIỆC VỚI CON TRỎ 17 Biến trỏ 17 1.1 Khái niệm trỏ ( pointer ) 17 1.3 Gán địa biến cho biến trỏ 18 1.4 Cấp phát vùng nhớ cho biến trỏ 19 1.5 Giải phóng vùng nhớ cho biến trỏ 19 1.6 Một số phép toán trỏ 20 Con trỏ mảng chiều 21 Con trỏ mảng nhiều chiều 22 BÀI LÀM VIỆC VỚI KIỂU CẤU TRÚC 25 Khái niệm cấu trúc 25 Khai báo kiểu cấu trúc 25 Truy nhập đến thành phần biến cấu trúc 28 Nhập liệu cho biến cấu trúc 28 BÀI LÀM VIỆC VỚI KIỂU TẬP TIN 32 Khái niệm tập tin 32 Các kiểu vào với tệp: 33 2.1 Khai báo biến tập tin 33 2.2 Mở tập tin 34 2.3 Đóng tập tin 35 2.4 Kiểm tra đến cuối tập tin hay chưa? 35 2.5 Di chuyển trỏ tập tin đầu tập tin - Hàm rewind() 36 Các thao tác tệp: 36 3.1 Ghi liệu lên tập tin văn 36 3.2 Đọc liệu từ tập tin văn 37 BÀI THÊM PHẦN TỬ TRONG DANH SÁCH ĐẶC 41 Định nghĩa 41 Khởi tạo danh sách 41 Thêm phần tử vào danh sách 42 3.1.Thêm vào đầu danh sách: 42 3.2.Thêm vào cuối danh sách: 42 3.3 Thêm vào vị trí danh sách: 42 BÀI XÓA PHẦN TỬ TRONG DANH SÁCH ĐẶC 44 Xóa phần tử đầu 44 Xóa phần tử cuối 45 Xóa phần tử vị trí danh sách: 45 BÀI LÀM VIỆC VỚI DANH SÁCH LIÊN KẾT 46 Định nghĩa: 46 Khai báo nút 47 Khai báo danh sách 47 Khởi tạo nút 47 Khởi tạo danh sách 48 Nhập danh sách 48 Xuất danh sách 49 BÀI CHÈN PHẦN TỬ TRONG DANH SÁCH LIÊN KẾT 50 Chèn nút vào đầu danh sách 50 Chèn nút vào cuối danh sách 51 Chèn nút vào vị trí 51 BÀI XÓA PHẦN TỬ TRONG DANH SÁCH LIÊN KẾT 53 Xóa nút đầu danh sách 53 Xóa nút cuối danh sách 53 Hủy danh sách 54 BÀI 10 LÀM VIỆC VỚI NGĂN XẾP 56 1.4 Lấy phần tử khỏi ngăn xếp 58 1.5 Thêm phần tử vào ngăn xếp 58 2.3 Lấy phần tử khỏi ngăn xếp 59 2.4 Thêm phần tử vào ngăn xếp 60 2.5 Xóa phần tử ngăn xếp 60 BÀI 11 LÀM VIỆC VỚI HÀNG ĐỢI(QUEUE) 62 Biểu diễn hàng đợi dùng mảng: 63 2.4 Lấy phần tử ở đầu Queue 67 BÀI 12 SỬ DỤNG CÁC PHƯƠNG PHÁP SẮP XẾP 70 Định nghĩa toán xếp: 70 2.3 Giải thuật: 71 Phương pháp xếp bọt 73 3.3 Giải thuật: 74 Phương pháp đổi chỗ trực tiếp 74 4.3 Giải thuật: 75 Phương pháp chèn trực tiếp( insertion sort) 77 5.3 Giải thuật: 78 Phương pháp tìm kiếm nhị phân 83 2.1 Ý tưởng 83 TÀI LIỆU CẦN THAM KHẢO: 86 CHƯƠNG TRÌNH MƠ ĐUN    CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Mã số mơ đun: MĐ15 VỊ TRÍ, TÍNH CHẤT CỦA MƠ ĐUN: ­Vị trí: Mơ đun này được học sau mơ đun Tin học văn phịng, Lập trình  căn bản, cơ sở dữ liệu ­Tính chất: Mơ đun 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   MỤC TIÊU MƠ ĐUN:  ­ Trình bày được các kiểu dữ liệu ­ Phân tích và xây dựng được thuật tốn ­ 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 ­ Thực hiện được các thao tác trên các kiểu dữ liệu ­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 đơn ­ Có tinh thần trách nhiệm, ý thức tổ chức kỷ luật, tác phong cơng nghiệp,  tinh thần hợp tác trong cơng việc ­ Có ý chủ động, độc lập trong cơng việc, tự học cập nhật kiến thức, nâng  cao trình độ chun mơn NỘI DUNG CỦA MƠ ĐUN: STT Tên các bài trong mô đun Giới   thiệu   cấu   trúc     liệu     giải  thuật Làm việc với con trỏ Làm việc với kiểu cấu trúc Thời  gian Hình thức  giảng dạy Tích hợp Tích hợp Tích hợp Làm việc với kiểu tập tin Tích hợp   Kiểm tra bài 1,2,3,4   Thêm phần tử trong danh sách đặc Tích hợp Xóa phần tử trong danh sách đặc Tích hợp   Kiểm tra bài 5,6   Làm việc với danh sách liên kết Tích hợp Chèn phần tử trong danh sách liên kết Tích hợp  Xóa phần tử trong danh sách liên kết Tích hợp 10 Làm việc với ngăn xếp Tích hợp 11 Làm việc với hàng đợi Tích hợp   Kiểm tra bài 7,8,9,10,11   Sử dụng các  phương pháp sắp xếp  Sử dụng các phương pháp tìm kiếm  Kiểm tra bài 12,13 Cộng 10 75 Tích hợp Tích hợp     12 13     BÀI 1 GIỚI THIỆU CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Giới thiệu: Giải thuật là cách phân tích 1 vấn đề, từ thực tiễn cho tới chương trình,   cách thiết kế  một giải pháp cho vấn đề  theo cách giải quyết bằng máy tính.  Tiếp theo, các phương pháp phân tích, đánh giá độ phức tạp và thời gian thực   hiện giải thuật . Qua bài học này sẽ  giới thiệu một cách thật cụ  thể  về  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, kiên trì, sáng tạo.  ­ Bảo đảm an tồn và vệ sinh cho người và thiết bị trong phịng máy Nội dung  1. Mối liên hệ giải thuật và cấu trúc dữ liệu 1.1. Giải thuật Giải thuật là các bước cần tác động theo một thứ  tự  nhất định nào đó   trên cơ sở bổ dữ liệu vào để đạt dữ liệu ra đúng với chân lý của nó Dữ liệu  vào Input Giải thuật DD ữữ  li li ệệ u u  rara Out put 1.2. 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ý 10 } } Ví dụ:  Cho một dãy các phần tử như sau, minhhọa thuật tốn đổi chỗ: 12           2        8          5          1          6          4          15 72 3. Phương pháp sắp xếp nổi bọt 3.1. Ý tưởng: + Xuất phát từ cuối dãy, đổi chỗ các cặp phần tử kế cận để đưa phần  tử nhỏ hơn trong cặp phần tử đó về vị trí đứng đầu dãy hiện hành, sau  đó sẽ khơng xét đến nó ở bước tiếp theo, do vậy ở lần xử lý thứ i sẽ có  vị trí đầu dãy là i.  + Lặp lại xử lý trên cho đến khi khơng cịn cặp phần tử nào để xét 3.2. Các bước tiến hành: + Bước 1: i = 0;// lần  xử lý đầu tiên + Bước 2:  j=N­1;//Duyệt từ cuối dãy ngược về vị trí i Trong khi (j a[j­1] Doicho(a[j],a[j­1]);  j = j­1  + Bước 3 : i = i+1; // lần xử lý kế tiếp  Nếu i>N­1 : Hết dãy .Dừng Ngược lại: Lặp lai Bước 2 73 3.3. Giải thuật: void  SXNoibot(int a[],int n) { int i, j,tg; for (i = 0 ; ii ; j ­­) if(a[j]

Ngày đăng: 10/07/2020, 09:58

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan