III.1 Giới thiệu kiểu dữ liệu con trỏ

Một phần của tài liệu Giáo trình cấu trúc dữ liệu và giải thuật (Trang 47)

III.1.1. So sánh kiểu dữ liệu tĩnh và kiểu dữ liệu động

Do đặc điểm và hạn chếcủa các kiểu dữ liệu cơ sởkiểu cĩ cấu trúc đơn giản đã xét (gọi là kiểu dữ liệu tĩnh) là tính cố định và cứng nhắc do khơng thay đổi được kích thước cấu trúc trong chu trình sống, (mặc dù các thao tác trên chúng cĩ thể nhanh và thuận tiện trong một số tình huống); vì vậy, nĩ khĩ mơ tả

một cách thật tự nhiên và đúng bản chất của thực tế vốn sinh động và phong phú. Khi xây dựng chương trình, nếu cần biểu diễn các đối tượng cĩ số lượng ổn định cĩ thể dựđốn trước kích thước của chúng, ta cĩ thể sử dụng biến khơng

động (biến tĩnh hay nửa tĩnh). Chúng thường được khai báo tường minh được truy xuất trực tiếp bằng một định danh rõ ràng (tương ứng với địa chỉ vùng nhớ lưu trữ biến này), tồn tại trong phạm vi khai báo chỉ mất khi ra khỏi phạm vi này,

được khai báo trong vùng Data segment (vùng dữ liệu) hoặc trong vùng Stack segment (biến cục bộ) và cĩ kích thước khơng đổi trong suốt phạm vi sống.

Kiểu dữ liệu tĩnh (và do đĩ cảcác thao tác cơ bản tương ứng) sẽ khĩ: - biểu diễn, cài đặt và xác định kích thước của các kiểu dữ liệu đệ qui;

- cài đặt một cách hiệu quả và tự nhiên (mặc dù nĩ cĩ thểđơn giản) các đối tượng dữ liệu cĩ số lượng các phần tử khĩ dự đốn trước biến động nhiều

trong quá trình sống (cĩ thể do các thao tác thêm vào loại ra xảy ra thường xuyên). Khi đĩ, nhiều thao tác cơ bản trên chúng sẽ phức tạp, kém tự nhiên, làm chương trình trở nên khĩ đọc, khĩ bảo trì cũng như việc sử dụng bộ nhớ kém hiệu quả(do thiếu hay lãng phí bộ nhớ quá nhiều);

- biểu diễn hiệu quả (do sử dụng bộ nhớ kém hiệu quả) các đối tượng dữ liệu lớn chỉ tồn tại nhất thời hay khơng thường xuyên trong quá trình hoạt động của chương trình.

Đối với các kiểu dữ liệu cĩ đặc tính: số lượng biến động, kích thước thay đổi hay chỉ tồn tại nhất thời trong chu trình sống, … trong nhiều trường hợp nếu dùng kiểu dữ liệu động để biểu diễn sẽ đúng bản chất tự nhiên hơn cũng như

thuận lợi hơn trong các thao tác tương ứng trên chúng.

Trong chương này, ta sẽ xét một kiểu dữ liệu động đơn giản nhất là danh sách liên kết.

III.1.2. Kiểu dữ liệu con trỏ

Một phần của tài liệu Giáo trình cấu trúc dữ liệu và giải thuật (Trang 47)