Chương 4: Cấu trúc dữ liệu động

Nội dung: - Biến tĩnh và biến động - Danh sách liên kết - Ngăn xếp-Stack - Hàng đợi-Queue | Cấu trúc dữ liệu động Chương 4 Hàng đợi - Queue 4 Biến tĩnh và biến động 1 Danh sách liên kết 2 Ngăn xếp - Stack 3 Nội dung Chương 4 Cấu trúc dữ liệu động Khai báo tường minh và được cấp phát vùng nhớ ngay khi khai báo, vùng nhớ được cấp cho biến tĩnh sẽ không thể thu hồi được nếu biến còn trong phạm vi hoạt động Ví dụ: int X; X (2 bytes) float Y; Y (4 bytes) Nhược điểm Chúng có thể chiếm dụng bộ nhớ. Một số thao tác tiến hành thiếu tự nhiên trên các đối tượng tĩnh: Chèn và xóa trong mảng. Biến tĩnh (Static Variant) 5/13/2020 10:11:39 PM Chương 4 Cấu trúc dữ liệu động Tính chất của biến động: Thuộc một kiểu dữ liệu nào đó, không được khai báo tường minh không có tên Được cấp phát vùng nhớ và truy xuất thông qua một biến con trỏ (Biến tĩnh) Có thể thay đổi kích thước hoặc thu hồi (hủy bỏ) vùng nhớ được cấp phát khi chương trình đang hoạt động Việc tạo ra biến động (cấp phát vùng nhớ cho nó ) và xóa bỏ nó được thực hiện bởi các thủ tục đã có sẵn Biến động (Dynamic . | Cấu trúc dữ liệu động Chương 4 Hàng đợi - Queue 4 Biến tĩnh và biến động 1 Danh sách liên kết 2 Ngăn xếp - Stack 3 Nội dung Chương 4 Cấu trúc dữ liệu động Khai báo tường minh và được cấp phát vùng nhớ ngay khi khai báo, vùng nhớ được cấp cho biến tĩnh sẽ không thể thu hồi được nếu biến còn trong phạm vi hoạt động Ví dụ: int X; X (2 bytes) float Y; Y (4 bytes) Nhược điểm Chúng có thể chiếm dụng bộ nhớ. Một số thao tác tiến hành thiếu tự nhiên trên các đối tượng tĩnh: Chèn và xóa trong mảng. Biến tĩnh (Static Variant) 5/13/2020 10:27:04 PM Chương 4 Cấu trúc dữ liệu động Tính chất của biến động: Thuộc một kiểu dữ liệu nào đó, không được khai báo tường minh không có tên Được cấp phát vùng nhớ và truy xuất thông qua một biến con trỏ (Biến tĩnh) Có thể thay đổi kích thước hoặc thu hồi (hủy bỏ) vùng nhớ được cấp phát khi chương trình đang hoạt động Việc tạo ra biến động (cấp phát vùng nhớ cho nó ) và xóa bỏ nó được thực hiện bởi các thủ tục đã có sẵn Biến động (Dynamic Variant) 5/13/2020 10:27:04 PM Chương 4 Cấu trúc dữ liệu động Ví dụ: int X=10, *P; // khai báo 2 biến tĩnh X, P (con trỏ) P=&X; // Cho P trỏ đến X printf(“\nĐịa chỉ của biến X là %x”,P); printf(“\nX=%d”,*P); // hoặc printf(“X=%d”,X); in giá trị của X P=(int*)malloc(sizeof(int)); // tạo biến động cho P trỏ đến *P=X; //gán giá trị cho biến động bằng giá trị của X printf(“\nĐịa chỉ của biến động là %x”,P); printf(“\nGiá trị của Biến động=%d”,*P); free(P); //hủy (thu hồi vùng nhớ) biến động do P trỏ đến 5/13/2020 10:27:04 PM Chương 4 Cấu trúc dữ liệu động Dùng hàm có sẵn trong thư viện hay void *malloc ( size ); Cấp phát vùng nhớ có kích thước size bytes và trả về địa chỉ của vùng nhớ đó. void *calloc ( n, size ); Cấp phát vùng nhớ cho n phần tử, mỗi phần tử có kích thước size bytes và trả về địa chỉ của vùng nhớ đó. void * realloc (void *ptr, size_t nbyte): Thay đổi kích thước vùng nhớ đã cấp phát trước đó cho biến con trỏ ptr là n byte,

Không thể tạo bản xem trước, hãy bấm tải xuống
TỪ KHÓA LIÊN QUAN
TÀI LIỆU MỚI ĐĂNG
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.