Bài giảng Kỹ thuật lập trình Dữ liệu có cấu trúc GV. Hà Đại Dương

12 250 0
Bài giảng Kỹ thuật lập trình Dữ liệu có cấu trúc  GV. Hà Đại Dương

Đ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

Bài giảng Kỹ thuật lập trình do GV. Hà Đại Dương biên soạn trình bày về dữ liệu có cấu trúc, cụ thể: kiểu có cấu trúc (structure), danh sách liên kết (linked list), hàng đợi (Queue) và ngăn xếp (Stack). Mời các bạn cùng tham khảo.

10/25/2016 Kỹ thuật lập trình Tuần 11 - Dữ liệu có cấu trúc Giáo viên: Hà Đại Dương duonghd@mta.edu.vn 10/25/2016 Vấn đề • Các đối tượng phức tạp như: – Điểm mặt phẳng, Phân số, Ngày (tháng, năm) – Sinh viên Thì mơ tả (dữ liệu) nào? • Mơ tả loại đối dạng kiểu liệu có cấu trúc • Mỗi thành phần đối tượng, ví dụ toạ độ x, toạ độ y điểm gọi trường (field) 10/25/2016 Nội dung • • • • Kiểu có cấu trúc (structure) Danh sách liên kết (linked list) Hàng đợi (Queue) Ngăn xếp (Stack) 10/25/2016 10/25/2016 Kiểu có cấu trúc (structure) 10/25/2016 Khai báo kiểu cấu trúc • Cú pháp struct Tên_cấu_trúc { Kiểu Tên_trường_1; Kiểu Tên_trường_2; …… Kiểu Tên_trường_n; }; 10/25/2016 Khai báo kiểu cấu trúc • Cú pháp typedef struct { Kiểu Tên_trường_1; Kiểu Tên_trường_2; …… Kiểu Tên_trường_n; } Tên_cấu_trúc; 10/25/2016 10/25/2016 Trong • • • • struct, typedef struct: từ khoá Tên_cấu_trúc: Tên cấu trúc cần định nghĩa Kiểu: Kiểu liệu có Tên_trường_k: Tên trường (dữ liêu) 10/25/2016 Ví dụ 10/25/2016 Khai báo biến kiểu cấu trúc • Đối với cấu trúc khai báo theo cách 1: struct Tên_cấu_trúc Tên_biến, ; • Đối với cấu khai báo theo cách 2: Tên_cấu_trúc Tên_biến, ; • Ví dụ: struct DiemPhang A, B, C; struct PhanSo P, Q; NgayThang NS; 10/25/2016 10/25/2016 Truy cập trường biến • Với biến thường (khơng phải trỏ) cú pháp: Tên_biến.Tên_trường • Ví dụ với biến: NS (NgayThang) NS.ngay NS.thang NS.nam 10/25/2016 10 Ví dụ • Viết chương trình cho phép nhập vào toạ độ đỉnh tam giác ABC, tính khoảng cách A, B 10/25/2016 11 Khai báo biến cấu trúc Truy cập trường 10/25/2016 12 10/25/2016 Ví dụ • Viết chương trình cho phép nhập vào phân số A, B; tính in kết phép cộng phân số • Viết chương trình (15 phút) 10/25/2016 13 10/25/2016 14 Biến cấu trúc dạng trỏ • Như biến khác, biến có cấu trúc khai báo dạng trỏ • Đối với cấu trúc khai báo theo cách 1: struct Tên_cấu_trúc *Tên_biến, ; • Đối với cấu khai báo theo cách 2: Tên_cấu_trúc *Tên_biến, ; 10/25/2016 15 10/25/2016 Thao tác với biến trỏ • Phải cấp phát nhớ trước sử dụng • Truy cập trường: Tên_biến->Tên_trường (->: dấu - >) Ví dụ với biến: A (DiemPhang) A->x A->y 10/25/2016 16 Ví dụ • Viết chương trình cho phép nhập vào toạ độ đỉnh tam giác ABC, tính khoảng cách A, B (ví dụ 1) Khai báo biến dạng trỏ 10/25/2016 17 Khai báo dạng trỏ Cấp phát nhớ Truy cập trường 10/25/2016 18 10/25/2016 Danh sách liên kết 10/25/2016 19 Danh sách liên kết • Như biết, để tổ chức danh sách có cách: – Dùng mảng – Dùng trỏ với việc cấp phát nhớ động • Tuy nhiên với kiểu cấu trúc khả “tự trỏ” người ta tạo dạng danh sách đặc biệt: Danh sách liên kết 10/25/2016 20 Cấu trúc tự trỏ • Trong tổ chức kiểu cấu trúc C/C++ cho phép định nghĩa trường trỏ để trỏ đến đối tượng có kiểu cấu trúc với gọi Cấu trúc tự trỏ 10/25/2016 21 10/25/2016 Cú pháp • Cú pháp struct Tên_cấu_trúc { Kiểu Tên_trường_1; Kiểu Tên_trường_2; …… Kiểu Tên_trường_n; Tên_cấu_trúc con_trỏ_1 Tên_cấu_trúc con_trỏ_n }; 10/25/2016 22 Cú pháp • Cú pháp typedef struct Tên_cấu_trúc { Kiểu Tên_trường_1; Kiểu Tên_trường_2; …… Kiểu Tên_trường_n; Tên_cấu_trúc con_trỏ_1; … Tên_cấu_trúc con_trỏ_n; }; 10/25/2016 23 Ví dụ • Sử dụng danh sách liên kết lưu đỉnh kề đa giác • Khai báo cấu trúc tự trỏ 10/25/2016 24 10/25/2016 Ví dụ 10/25/2016 25 Danh sách liên kết • Liên kết đơn: Tạo thành danh sách List Data Next Data Next Data Next Data Next Data Next Data Next NULL 10/25/2016 26 Danh sách liên kết … • Liên kết đơi: Cây nhị phân, liên kết chiều Tree Left Left Data Right Left 10/25/2016 Data Right Left Data Right Data Right Left Data Right 27 10/25/2016 Danh sách liên kết đơn • Quản lý danh sách (như mảng) List Data Next Data Next Data Next NULL Đầu danh sách: trỏ List Cuối: Trỏ đến NULL để báo hiệu kết thúc danh sách 10/25/2016 28 Ví dụ 10/25/2016 29 Danh sách liên kết đơn … • Thêm mục List 10/25/2016 Next Next Next Next NULL 30 10 10/25/2016 Ví dụ 10/25/2016 31 Danh sách liên kết đơn … • Xố mục List Next Next Next NULL 10/25/2016 32 10/25/2016 33 11 10/25/2016 Bài tập 10/25/2016 34 Bài tập Viết chương trình cho phép nhập vào toạ độ đỉnh tam giác ABC, tính diện tích ABC Dùng danh sách liên kết lưu toạ độ đỉnh kề đa giác, tính diện tích đa giác Đọc liệu điểm sinh viên từ file text vào danh sách liên kết đơn theo thứ tự điểm giảm dần 10/25/2016 35 Bài tập nhà Viết chương trình cho phép nhập vào biểu thức bất kỳ, tách thành phần (toán hạng, tốn tử) biểu thức lưu vào danh sách liên kết đơn 10/25/2016 36 12 ... Viết chương trình (15 phút) 10/25/2016 13 10/25/2016 14 Biến cấu trúc dạng trỏ • Như biến khác, biến có cấu trúc khai báo dạng trỏ • Đối với cấu trúc khai báo theo cách 1: struct Tên _cấu_ trúc *Tên_biến,... Tên_trường_n; } Tên _cấu_ trúc; 10/25/2016 10/25/2016 Trong • • • • struct, typedef struct: từ khoá Tên _cấu_ trúc: Tên cấu trúc cần định nghĩa Kiểu: Kiểu liệu có Tên_trường_k: Tên trường (dữ liêu) 10/25/2016... dụ 10/25/2016 Khai báo biến kiểu cấu trúc • Đối với cấu trúc khai báo theo cách 1: struct Tên _cấu_ trúc Tên_biến, ; • Đối với cấu khai báo theo cách 2: Tên _cấu_ trúc Tên_biến, ; • Ví dụ: struct

Ngày đăng: 16/05/2017, 16:13

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan