Cấu trúc dữ liệu và giải thuật (Data Structure and Algorithms): Cấu trúc dữ liệu mảng

12 226 0
Cấu trúc dữ liệu và giải thuật (Data Structure and Algorithms): Cấu trúc dữ liệu mảng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mảng (Array) là một trong các cấu trúc dữ liệu cũ và quan trọng nhất. Mảng có thể lưu giữ một số phần tử cố định và các phần tử này nền có cùng kiểu. Hầu hết các cấu trúc dữ liệu đều sử dụng mảng để triển khai giải thuật. Dưới đây là các khái niệm quan trọng liên quan tới Mảng.

Cấu trúc liệu giải thuật (Data Structure and Algorithms): Cấu trúc liệu mảng Cấu trúc liệu mảng Cấu trúc liệu mảng gì? Mảng (Array) cấu trúc liệu cũ quan trọng Mảng lưu giữ số phần tử cố định phần tử có kiểu Hầu hết cấu trúc liệu sử dụng mảng để triển khai giải thuật Dưới khái niệm quan trọng liên quan tới Mảng • Phần tử: Mỗi mục lưu giữ mảng gọi phần tử • Chỉ mục (Index): Mỗi vị trí phần tử mảng có mục số sử dụng để nhận diện phần tử Mảng gồm ghi có kiểu giống nhau, có kích thước cố định, phần tử xác định số Mảng cấu trúc liệu cấp phát lien tục Ưu điểm mảng: • Truy câp phần tử với thời gian số O(1) • Sử dụng nhớ hiệu • Tính cục nhớ Nhược điểm • Không thể thay đổi kích thước mảng chương trình dang thực Mảng động Mảng động (dynamic aray): cấp phát nhớ cho mảng cách động trình chạy chương trình C malloc calloc, C++ new Sử dụng mảng động ta bắt đầu với mảng có phàn tử, số lượng phàn tử vượt qua khả ảng ta gấp đôi kích thước mảng cuc copy phàn tử mảng cũ vào nửa đầu mảng Ưu điểm: tránh lãng phí nhớ phải khai báo mảng có kích thước lớn từ đầu Nhược điểm: + phải thực them thao tác copy phần tử thay đổi kích thước + số thời gian thực thao tác không số Biểu diễn Cấu trúc liệu mảng Mảng khai báo theo nhiều cách đa dạng ngôn ngữ lập trình Để minh họa, sử dụng phép khai báo mảng ngôn ngữ C: Hình minh họa phần tử mục: Dưới số điểm cần ghi nhớ cấu trúc liệu mảng: • Chỉ mục bắt đầu với • Độ dài mảng 10, nghĩa mảng lưu giữ 10 phần tử • Mỗi phần tử truy cập thông qua mục phần tử Ví dụ, lấy giá trị phần tử mục 27 Phép toán hỗ trợ mảng Dưới hoạt động hỗ trợ mảng: • Duyệt: In tất phần tử mảng theo cách in phần tử • Chèn: Thêm phần tử vào mảng mục cho • Xóa: Xóa phần tử từ mảng mục cho • Tìm kiếm: Tìm kiếm phần tử sử dụng mục hay giá trị • Cập nhật: Cập nhật giá trị phần tử mục Trong ngôn ngữ C, mảng khởi tạo với kích cỡ ban đầu, gán giá trị mặc định cho phần tử mảng theo thứ tự sau: Kiểu liệu Giá trị mặc định bool false char int float 0.0 double 0.0f void wchar_t Hoạt động chèn phần tử vào mảng Hoạt động chèn để chèn nhiều phần tử liệu vào mảng Tùy theo yêu cầu, phần tử chèn vào vị trí đầu, vị trí cuối vị trí mục cho mảng Phần triển khai hoạt động chèn ví dụ thực Trong ví dụ này, chèn liệu vào cuối mảngdụ Giả sử LA mảng tuyến tính thứ tự có N phần tử K số nguyên dương thỏa mãn K = K Gán LA[J+1] = LA[J] Gán J = J-1 Gán LA[K] = ITEM Kết thúc Sau code đầy đủ giải thuật ngôn ngữ C: #include main() { int LA[] = {1,3,5,7,8}; int item = 10, k = 3, n = 5; int i = 0, j = n; printf("Danh sach phan tu mang ban dau:\n"); for(i = 0; i= k){ LA[j+1] = LA[j]; j = j - 1; } LA[k] = item; printf("Danh sach phan tu cua mang sau hoat dong chen:\n"); for(i = 0; i

Ngày đăng: 19/07/2017, 08:54

Từ khóa liên quan

Mục lục

  • Cấu trúc dữ liệu và giải thuật (Data Structure and Algorithms): Cấu trúc dữ liệu mảng

Tài liệu cùng người dùng

Tài liệu liên quan