1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Cấu trúc dữ liệu và giải thuật: Bài 4 - Hoàng Thị Điệp (2014)

11 17 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 99,78 KB

Nội dung

Bài giảng Cấu trúc dữ liệu và giải thuật - Bài 4: Kiểu dữ liệu trừu tượng danh sách cung cấp cho người học các kiến thức: Kiểu dữ liệu trừu tượng danh sách - đặc tả, cài đặt bằng mảng tĩnh. Mời các bạn cùng tham khảo nội dung chi tiết.

Bài 4: KDLTT danh sách cài đặt mảng tĩnh Giảng viên: Hồng Thị Điệp Khoa Cơng nghệ Thơng tin – Đại học Công Nghệ Cấu trúc liệu giải thuật HKI, 2013-2014 Nội dung  KDLTT danh sách: đặc tả  Cài đặt mảng tĩnh diepht@vnu Danh sách  Danh sách cấu trúc liệu tuyến tính, phần tử liệu xếp theo thứ tự xác định  Danh sách nhất: phần tử kiểu  Ví dụ  Danh sách sinh viên  Danh sách điện thoại  Danh sách môn học  Danh sách hát  Danh sách công việc diepht@vnu Trừu tượng hóa danh sách Đặc tả liệu  Là dãy hữu hạn phần tử L = (a0, a1, … , an-1) Đặc tả phép tốn  Kiểm tra danh sách có rỗng hay không  Đếm số phần tử danh sách  Trả phần tử vị trí thứ i danh sách  Thêm phần tử x vào vị trí i danh sách  Thêm phần tử x vào danh sách  Loại phần tử vị trí thứ i danh sách  Ta muốn thiết kế lớp danh sách để người lập trình dùng lớp biểu diễn danh sách phần tử có kiểu tùy ý  Generic programming  Template C++ diepht@vnu Trừu tượng hóa danh sách Đặc tả liệu L = (a0, a1, …, an-1) phần tử thứ i+1 danh sách L Ví dụ: L = (1, 2, 3, 3, 4, 5) L = (‘Vinh’, ‘Tuấn’, ‘Ánh’) Đặc tả phép tốn  Kiểm tra danh sách có rỗng hay không: empty(L)  Đếm số phần tử danh sách: length(L)  Trả phần tử vị trí thứ i danh sách: element(L, i)  Thêm phần tử x vào vị trí i danh sách: insert(L, i, x)  Thêm phần tử x vào đuôi danh sách: append(L, x)  Loại phần tử vị trí thứ i danh sách: erase(L, i) diepht@vnu Ví dụ  L = (1, 2, 3, 3, 4, 5)  empty(L) → false  length(L) →  element(L, 0) →  element(L, 2) →  insert(L, 2, 10) → L = (1, 2, 10, 3, 3, 4, 5)  append(L, -5) → L = (1, 2, 10, 3, 3, 4, 5, -5)  erase(L, 3) → L = (1, 2, 10, 3, 4, 5, -5)  erase(L, 1) → L = (1, 10, 3, 4, 5, -5) diepht@vnu Cài đặt danh sách mảng  Mảng (array)  Tập hợp phần tử (các biến) có kiểu  Một phần tử cụ thể mảng xác định truy cập số  Trong C/C++, phần tử mảng đặt cạnh tạo thành khối liên tục Địa thấp tương ứng với phần tử đầu tiên, địa cao tương ứng với phần tử cuối  Mảng chiều nhiều chiều diepht@vnu Cài đặt danh sách mảng  Mảng chiều tĩnh int dayso[100]; Phanso dayphanso[15];  Mảng chiều động  Cấp phát nhớ phép new int *daysod = new int[100]; Phanso *dayphansod = new Phanso[15];  Khi khơng dùng nữa, phải giải phóng nhớ phép delete delete [] daysod; delete [] dayphansod;  L = (a0, a1, …, an-1) a0 a1 … an-1 ? n-1 n … ? MAX-1 diepht@vnu insert(L, i, x) a0 … ai-1 … an-1 ? ? … i-1 i … n-1 n n+1 a0 … ai-1 x … an-1 ? … i-1 i i+1 … n n+1 … ? MAX-1 … ? MAX-1  Dồn tất phần tử từ vị trí i tới vị trí n-1 sau vị trí  Sau đặt giá trị x vào vị trí i  Tăng số phần tử danh sách lên diepht@vnu erase(L, i) a0 … ai-1 ai+1 … an-1 ? … i-1 i i+1 … n-1 n a0 … ai-1 ai+1 … an-1 ? ? … i-1 i … n-2 n-1 n … ? MAX-1 … ? MAX-1  Dồn tất phần tử từ vị trí i+1 tới vị trí n-1 lên trước vị trí  Giảm số phần tử danh sách 10 diepht@vnu Chuẩn bị tuần tới  Thực hành: Cài đặt KDLTT danh sách mảng tĩnh  Lý thuyết: Đọc chương (4.3 đến hết) chương giáo trình 11 diepht@vnu ... diepht@vnu erase(L, i) a0 … ai-1 ai+1 … an-1 ? … i-1 i i+1 … n-1 n a0 … ai-1 ai+1 … an-1 ? ? … i-1 i … n-2 n-1 n … ? MAX-1 … ? MAX-1  Dồn tất phần tử từ vị trí i+1 tới vị trí n-1 lên trước vị trí ... phải giải phóng nhớ phép delete delete [] daysod; delete [] dayphansod;  L = (a0, a1, …, an-1) a0 a1 … an-1 ? n-1 n … ? MAX-1 diepht@vnu insert(L, i, x) a0 … ai-1 … an-1 ? ? … i-1 i … n-1 n... 10) → L = (1, 2, 10, 3, 3, 4, 5)  append(L, -5 ) → L = (1, 2, 10, 3, 3, 4, 5, -5 )  erase(L, 3) → L = (1, 2, 10, 3, 4, 5, -5 )  erase(L, 1) → L = (1, 10, 3, 4, 5, -5 ) diepht@vnu Cài đặt danh

Ngày đăng: 20/05/2021, 01:50

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN