CTDL_GT_RUA

Kiểu dữ liệu tĩnh:(Cấu trúc dữ liệu tĩnh)

+ Khái niệm:Một số đối tượng dữ liệu không thay đổi được kích thước, cấu trúc, … trong suốt quá trình sống. Các đối tượng dữ liệu thuộc những kiểu dữ liệu gọi là kiểu dữ liệu tĩnh.

+ Một số kiểu dữ liệu tĩnh : các cấu trúc dữ liệu được xây dựng từ các kiểu cơ sở như: kiểu thực, kiểu nguyên, kiểu ký tự ... hoặc từ các cấu trúc đơn giản như mẩu tin, tập hợp, mảng ... Các đối tượng dữ liệu được xác định thuộc những kiểu dữ liệu này thường cứng ngắt, gò bó, khó diễn tả được thực tế vốn  sinh động, phong phú.

+ Một số đối tượng dữ liệu trong chu kỳ sống của nó có thể thay đổi về cấu trúc, độ lớn, như danh sách các học viên trong một lớp học có thể tăng thêm, giảm đi ... Nếu dùng những cấu trúc dữ liệu tĩnh đã biết như mảng để biểu diễn, người lập trình phải dùng những thao tác phức tạp, kém tự nhiên khiến cho chương trình khó đọc, khó bảo trì và nhất là khó có thể sử dụng bộ nhớ một cách có hiệu quả.

+ Một lý do nữa làm cho các kiểu dữ liệu tỉnh không thể đáp ứng được nhu cầu của thực tế là tổng kích thước vùng nhớ dành cho tất cả những biến tĩnh chỉ là 64Kb.

+ Dữ liệu tĩnh sẽ chiếm vùng nhớ đã dành cho chúng suốt quá trình hoạt động của chương trình dẫn đến sử dụng bộ nhớ kém hiệu quả.

+ Ví dụ: mảng 1 chiều:

- Kích thước cố định (fixed size)

- Chèn 1 phần tử vào mảng rất khó

- Các phần tử tuần tự theo chỉ số 0 Þ n-1

- Truy cập ngẫu nhiên (random access).

Kiểu dữ liệu động:(Cấu trúc dữ liệu động)

+ Khái niệm: các cấu trúc dữ liệu được xây dựng với những hình thức mới linh động hơn, có thể thay đổi được kích thước, cấu trúc trong suốt thời gian sống, sử dụng bộ nhớ hiểu quả hơn, linh động hơn…

+ Ví dụ: danh sách liên kết:

- Cấp phát động lúc chạy chương trình

- Các phần tử nằm rải rác ở nhiều nơi trong bộ nhớ

- Kích thước danh sách chỉ bị giới hạn do RAM

- Thao tác thêm xoá đơn giản hơn.

Kiểu dữ liệu con trỏ:

+ Biến không động:

-       Khi xây dựng chương trình, lập trình viên có thể xác định được ngay những đối tượng dữ liệu luôn cần được sử dụng, không có nhu cầu thay đổi về số lượng, kích thước,… do đó có thể xác định cách thức lưu trữ chúng ngay từ đầu. Các đối tượng này được khai báo như các biến không động.

-       Biến không động (biến tĩnh, biến nửa tĩnh) là những biến thỏa:

·         Được khai báo tường minh.

·         Tồn tại khi vào phạm vi khai báo và chỉ mất khi ra khỏi phạm vi này.

·         Được cấp phát vùng nhớ trong vùng dữ liệu (Data segment) hoặc là  Stack (đối với biến nửa tĩnh - các biến cục bộ).

·         Kích thước không thay đổi trong suốt quá trình sống.

·         Do được khai báo tường minh, các biến không động có một định danh đã được kết nối với địa chỉ vùng nhớ lưu trữ biến và được truy xuất trực tiếp thông qua định danh đó.

+ Biến động:

-       Trong nhiều trường hợp, tại thời điểm biên dịch không thể xác định trước kích thước chính xác của một số đối tượng dữ liệu do sự tồn tại và tăng trưởng của chúng phụ thuộc vào ngữ cảnh của việc thực hiện chương trình.

-       Các đối tượng dữ liệu có đặc điểm kể trên nên được khai báo như biến động. Biến động là những biến thỏa:

·         Biến không được khai báo tường minh.

·         Có thể được cấp phát hoặc giải phóng bộ nhớ khi người sử dụng yêu cầu.                       

·       &nbs

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: #ctdl