intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

CHƯƠNG 4: KIỂU DỮ LIỆU CÓ CẤU TRÚC

Chia sẻ: Trần Quang Thịnh | Ngày: | Loại File: PPT | Số trang:44

618
lượt xem
92
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Nội dung chương 4 gồm: Định nghĩa kiểu dữ liệu có cấu trúc. Sự đặc tả kiểu dữ liệu có cấu trúc. Sự cài đặt các cấu trúc dữ liệu. Vectơ (mảng một chiều). Mảng nhiều chiều. Mẩu tin và mẩu tin có cấu trúc thay đổi. Chuỗi ký tự. Cấu trúc dữ liệu có kích thước thay đổi (Danh sách, Con trỏ, Tập hợp, Tập tin).

Chủ đề:
Lưu

Nội dung Text: CHƯƠNG 4: KIỂU DỮ LIỆU CÓ CẤU TRÚC

  1. CHƯƠNG 4: KIỂU DỮ LIỆU CÓ CẤU TRÚC  Định nghĩa kiểu dữ liệu có cấu trúc.  Sự đặc tả kiểu dữ liệu có cấu trúc.  Sự cài đặt các cấu trúc dữ liệu.  Vectơ (mảng một chiều).  Mảng nhiều chiều.  Mẩu tin và mẩu tin có cấu trúc thay đổi.  Chuỗi ký tự.  Cấu trúc dữ liệu có kích thước thay đổi (Danh sách, Con trỏ, Tập hợp, Tập tin). Nguyễn Văn Linh - Programming Languages - Chapter 4 1
  2. ̣ ̃ ĐINH NGHIA  Kiểu dữ liệu có cấu trúc hay còn gọi là CTDL là kiểu dữ liệu mà các ÐTDL có cấu trúc. Như vậy CTDL là một tập các ÐTDL có cấu trúc và tập các phép toán trên các ÐTDL đó.  Các CTDL thông dụng: Mảng, chuỗi ký tự, mẩu tin, ngăn xếp, con trỏ, tập tin... Nguyễn Văn Linh - Programming Languages - Chapter 4 2
  3. SỰ ĐẶC TẢ  Thuộc tính: • Số lượng phần tử. • Kiểu của các phần tử. • Tên của phần tử. • Kích thước tối đa. • Tổ chức phần tử.  Phép toán: • Lựa chọn phần tử. • Phép toán trên toàn cấu trúc. • Thêm/bớt phần tử, tạo/hủy cấu trúc. Nguyễn Văn Linh - Programming Languages - Chapter 4 3
  4. ĐẶC TẢ THUỘC TÍNH  Số lượng phần tử: Kích thước cố định, kích thước thay đổi.  Kiểu phần tử: Đồng nhất và không đồng nhất.  Tên của phần tử: Chỉ số, tên trường.  Kích thước tối đa: Số lượng lớn nhất các phần tử.  Tổ chức phần tử: Một dãy các phần tử. Nguyễn Văn Linh - Programming Languages - Chapter 4 4
  5. ĐẶC TẢ PHÉP TOÁN  Phép toán lựa chọn một phần tử: Chọn trực tiếp và chọn tuần tự.  Phép toán trên toàn cấu trúc: Gán.  Thêm / Bớt phần tử: Làm thay đổi kích thước.  Tạo / Hủy cấu trúc. Nguyễn Văn Linh - Programming Languages - Chapter 4 5
  6. SỰ CÀI ĐẶT  Biểu diễn bộ nhớ: • Biểu diễn tuần tự. • Biểu diễn liên kết.  Cài đặp phép toán chọn một phần tử: • Chọn trực tiếp trong biểu diễn tuần tự. • Chọn tuần tự trong biểu diễn tuần tự . • Chọn trực tiếp trong biểu diễn liên kết. • Chọn tuần tự trong biểu diễn liên kết. Nguyễn Văn Linh - Programming Languages - Chapter 4 6
  7. BIỂU DIỄN BỘ NHỚ  Biểu diễn tuần tự  Biểu diễn liên kết Bộ mô tả Bộ mô tả Phần tử Phần tử Phần tử Nguyễn Văn Linh - Programming Languages - Chapter 4 7
  8. CÀI ĐẶT PHÉP TOÁN  Chọn trực tiếp trong biểu diễn tuần tự: Vị trí phần tử = địa chỉ cơ sở + độ dời.  Chọn tuần tự trong biểu diễn tuần tự: Xác định vị trí phần tử đầu tiên. Vị trí phần tử tiếp theo = Vị trí phần tử hiện hành + Kích thước phần tử hiện hành.  Lựa chọn trong biểu diễn liên kết: Duyệt từ đầu danh sách. Nguyễn Văn Linh - Programming Languages - Chapter 4 8
  9. VÉCTƠ (MẢNG MỘT CHIỀU)  Định nghĩa: Là CTDL có kích thước cố định và đồng nhất.  Đặc tả:  Số lượng phần tử: Tập chỉ số.  Kiểu của tất cả các phần tử.  Tên phần tử: Chỉ số của phần tử.  Phép tóan lựa chọn một phần tử: Chọn trực tiếp bằng cách chỉ ra chỉ số của phần tử. Chỉ số là giá trị của biểu thức.  Phép toán gán.  Ví dụ: V : ARRAY[1..10] OF REAL Nguyễn Văn Linh - Programming Languages - Chapter 4 9
  10. CÀI ĐẶT VÉCTƠ (1)  Tổ chức lưu trữ: Biểu diễn tuần tự. Địa chỉ cơ sở Véc tơ A Kiểu dữ liệu LB Cận dưới tập chỉ Bộ mô tả UB số Cận trên tập chỉ Kiểu phần tử số E Kích thước mỗi PT A[ LB] Các phần tử A[UB] 10
  11. CÀI ĐẶT VÉCTƠ (2)  Phép toán lựa chọn 1 phần tử: Vị trí phần tử thứ i = α + D + (i – LB)* E α là địa chỉ cơ sở.  D là kích thước bộ mô tả.  Phép toán gán: Copy khối ô nhớ. Nguyễn Văn Linh - Programming Languages - Chapter 4 11
  12. MẢNG NHIỀU CHIỀU  Đ ặc tả: Mỗi chiều có một tập chỉ số.  Cài đặt: Biểu diễn bộ nhớ tuần tự, các phần tử được lưu trũ kế tiếp nhau, nhưng có 2 cách lưu:  Các phần tử được lưu theo trật tự dòng: Hết dòng này đến dòng khác.  Các phần tử được lưu theo trật tự cột: Hết cột này đến cột khác. Nguyễn Văn Linh - Programming Languages - Chapter 4 12
  13. BIỂU DIỄN MA TRẬN M[1..3,-1..2] OF INTEGER Địa chỉ cơ sở Ma trận M Kiểu dữ liệu LB1 (=1) Cận dưới tập chỉ số Bộ mô tả UB1 (=3) 1 Cận trên tập chỉ số LB2 (=-1) 1 Cận dưới tập chỉ số UB2 (=2) 2 Cận trên tập chỉ số M[1,-1] 2 Các phần tử M[1,0] M[1,1] M[1,2] M[3,2] 13
  14. CHỌN MỘT PHẦN TỬ CỦA MA TRẬN  Vị trí của phần tử M[i,j] được tính theo công thức: Vị trí M[i,j] = α + D + (i-LB1)*S + (j- LB2)*E  α là địa chỉ cơ sở.  D là kích thước bộ mô tả.  S là kích thước 1 dòng = (UB2-LB2+1)*E.  E là kích thước một phần tử. Nguyễn Văn Linh - Programming Languages - Chapter 4 14
  15. MẨU TIN  Định nghĩa: Là CTDL có  Ví dụ: kích thước cố định và không đồng nhất. Nhan_vien: Record  Đặc tả: Ma: Integer;  Số lượng phần tử Ho_ten: string[25]; (trường).  Tên của mỗi phần tử. Tuoi: Integer;  Kiểu của mỗi phần tử. Luong: Real;  Phép toán chọn phần tử: Sử dụng tên PT. End.  Phép gán. Nguyễn Văn Linh - Programming Languages - Chapter 4 15
  16. CÀI ĐẶT MẨU TIN  Bộ nhớ tuần tự:  Ví dụ: Nhan_vien Một khối ô nhớ liên tục để lưu trữ cả 22901 Ma mẩu tin. Mỗi trường Nguyễn Văn A Ho_ten được lưu trong một 20 Tuoi khối. Mỗi khối có thể 2.18 Luong có bộ mô tả riêng. Vị trí phần tử = α + Tổng kích thước các phần tử trước đó. Ví dụ: Vị trí Tuoi = α + Kích thước Ma + Kích thước Ho_ten 16
  17. MẨU TIN CÓ CẤU TRÚC THAY ĐỔI  Bài toán.  Định nghĩa.  Cài đặt. Nguyễn Văn Linh - Programming Languages - Chapter 4 17
  18. MẨU TIN CÓ CẤU TRÚC THAY ĐỔI (BÀI TOÁN)  Ví dụ: Một xí nghiệp có hai loại công nhân: Biên chế và hợp đồng.  Lương công nhân biên chế = Số ngày công * múc lương tối thiểu * Hệ số /20.  Những ngày nghỉ bảo hiểm xã hội, họ được trả lương bảo hiểm.  Lương công nhân hợp đồng = Số ngày công * đơn giá công nhật. Nguyễn Văn Linh - Programming Languages - Chapter 4 18
  19. ĐỊNH NGHĨA MẨU TIN CÓ CẤU TRÚC THAY ĐỔI  Mỗi mẩu tin bao gồm hai phần: Phần tĩnh và phần động.  Phần tĩnh gồm các trường mà tất cả các thể hiện đều có.  Phần động sẽ có các trường khác nhau tùy theo từng thể hiện.  Trong phần tĩnh phải có một trường dùng để phân biệt các thể hiện.  Phép toán lựa chọn một phần tử tương tự như mẩu tin bình thường. Nguyễn Văn Linh - Programming Languages - Chapter 4 19
  20. VÍ DỤ TYPE Loai_Cong_Nhan = (bien_che,hop_dong); VAR Cong_Nhan : RECORD Ho_Ten: String[20]; Ngay_Cong: Real; Luong: Real; CASE loai: Loai_Cong_Nhan OF bien_che: (He_So: Real; Nghi_bhxh:Real); hop_dong: (Gia_Cong_Nhat: Real); END; 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2