Danh sách bằng mảng 1 Mô hình danh sách.

Một phần của tài liệu Lập trình bằng Turbo Pascal part 7 potx (Trang 27 - 28)

1.1 Mô hình danh sách.

Danh sách tuyến tính (List) lμ một mô hình dữ liệu khái quát hoá các danh sách liệt kê. Có rất nhiều ví dụ về danh sách trong các bμi toán xử lí thông tin. Danh sách các nhân viên trong một cơ quan, danh sách hμnh khách giữ chỗ một chuyến bay, danh sách các công việc cần phải tiến hμnh trong một quy trình công nghệ...

Có thể khái quát hoá các đặc tr−ng cơ bản nhất của danh sách nh− sau: - Danh sách lμ tập các phần tử dữ liệu cùng kiểu, giữa các phần tử một trình tự đứng tr−ớc, đứng saụ

- Cho phép thêm phần tử mới vμo danh sách hoặc xoá bỏ bớt phần tử khỏi danh sách.

- Số phần tử hay kích th−ớc của danh sách lμ không cố định, có thể thay đổi tăng lên, giảm đi trong thời gian thực hiện ch−ơng trình. Đây lμ điểm khác với mảng.

- Các thao tác khác th−ờng lμm đối với danh sách lμ: Cho một phần tử tìm xem nó có thuộc danh sách hay không; Truy cập lấy thông tin về phần tử nμo đó trong danh sách; Duyệt qua mọi phần tử ,v.v.

1.2 Danh sách biểu diễn bằng cấu trúc mảng.

Theo mô tả các đặc tr−ng của danh sách ở trên, dễ thấy rằng ta có thể triển khai xây dựng một danh sách bằng cấu trúc mảng. Để thể hiện đ−ợc kích th−ớc thay đổi của danh sách cần xét kèm thêm một biến để ghi số phần tử hiện có. Nh− vậy, danh sách lμ một bộ gồm một mảng PhanTu để chứa các phần tử vμ một biến nguyên kt lμ số phần tử hiện có mặt trong danh sách.

Type DanhSach = Record

PhanTu: array [1.. max_kt ] of kiểu phần tử ; kt: word;

end;

ở đây max_kt lμ kích th−ớc (dự phòng) lớn nhất có thể của danh sách. Ví dụ, một danh sách tên ng−ời, mỗi phần tử của nó lμ một xâu kí tự đ−ợc khai báo nh− sau:

TYPE Ten = String[8]; DSTen = Record

PhanTu: array [1.. 100] of Tên; kt: word;

end;

VAR L: DSTên;

1.3 Các phép toán đối với danh sách mảng.

Sử dụng mảng lμ một cấu trúc có sẵn, các thao tác đối với danh sách nói trên dễ dμng đ−ợc thực hiện.

1.3.1 Truy cập một phần tử.

Truy cập vμo một phần tử của danh sách chính lμ truy cập vμo một phần tử mảng.

Gán trị: L.PhanTu[i]:= giá trị ; Đọc giá trí: biến:= L.PhanTu[i]; Ví dụ,

{ gán tên lμ Hùng cho ng−ời thứ 5 trong danh sách } L.PhanTu[5]:='Hùng';

{ Đọc tên ng−ời thứ 10 }

Một phần của tài liệu Lập trình bằng Turbo Pascal part 7 potx (Trang 27 - 28)