Các phép toán khác cũng dễ dàng cài đặt nên xem như bài tập

Một phần của tài liệu Bài giảng môn Cấu Trúc Dữ Liệu và Thuật toán doc (Trang 29 - 31)

Bài tập về nhà:

Vận dụng các phép toán trên danh sách đặc để viết chương trình nhập vào một danh sách các số nguyên và hiển thị danh sách vừa nhập ra màn hình. Thêm phần tử có nội dung x vào danh sách tại ví trí p (trong đó x và p được nhập từ bàn phím). Xóa phần tử đầu tiên có nội dung x (nhập từ bàn phím) ra khỏi danh sách.

Gợi ý:

Giả sử ta đã cài đặt đầy đủ các phép toán cơ bản trên danh sách. Để thực hiện yêu cầu như trên, ta cần thiết kế thêm một số chương trình con sau :

- Nhập danh sách từ bàn phím (READ_LIST(L)) (Phép toán này chưa có trong kiểu danh sách)

- Hiển thị danh sách ra màn hình (in danh sách) (PRINT_LIST(L)) (Phép toán này chưa có trong kiểu danh sách).

Thực ra thì chúng ta chỉ cần sử dụng các phép toán MakeNull_List, Insert_List, Delete_List, Locate và các chương trình con Read_List, Print_List vừa nói trên là có thể giải quyết được bài toán. Để đáp ứng yêu cầu đặt ra, ta viết chương trình chính để nối kết những chương trình con lại với nhau gồm các câu lệnh như sau:

BEGIN

MakeNullList(L); //Khởi tạo danh sách rỗng ReadList(L);

Writeln(‘Danh sach vua nhap: ‘);

Print_List(L); // In danh sach len man hinh Insert_List(X,P,&L);

Writeln(‘Danh sach sau khi them phan tu la: ‘); PrintList(L);

Writeln(‘Noi dung phan tu can xoa: ‘);readln(X); P=Locate(X,L);

DeleteList(P,L);

Writeln(‘Danh sach sau khi xoa’,X, ‘là:’); PrintList(L);

END.

2.1.3.2 Danh sách cài đặt bởi con trỏ

Danh sách được cài đặt bởi con trỏ ta còn gọi là cấu trúc dữ liệu danh sách liên kết - gọi tắt là danh sách liên kết, đây thuộc loại cấu trúc dữ liệu động

Trong cách cài đặt này, ta dùng con trỏ để liên kết các ô nhớ chứa các phần tử của danh sách. Các hình thức tổ chức liên kết các phần tử trong danh sách có thể là:

Ta có 1 kiểu lưu trữ khác: Lưu trữ móc nối, các ô nhớ chứa các phần tử trong danh sách không nhất thiết phải nằm ở những vị trí kế tiếp nhau, và chúng gắn kết với nhau thông qua cơ chế móc nối - lưu địa chỉ của nhau => danh sách được lưu trữ theo kiểu này gọi là danh sách móc nối hay danh sách liên kết. Vậy lưu trữ móc nối là như thế nào, ta đi tìm hiểu nguyên tắc lưu trữ của nó?

Các ô nhớ chứa các phần tử của danh sách là một vùng liên tục, các vùng nhớ này được cấp phát ngay khi dịch chương trình vì nó là các ô nhớ tĩnh.

Nhược điểm chính: Số lượng các phần tử trong danh sách bị hạn chế vì phụ thuộc vào vùng nhớ trống liên tục trong bộ nhớ

Ta đã biết, với cấu trúc danh sách kế tiêp thì:

+ Liên kết đơn, tương ứng ta có cấu trúc dữ liệu danh sách liên kết đơn – gọi tắt là danh sách liên kết đơn

+ Liên kết vòng: Tương ứng ta có cấu trúc dữ liệu danh sách liên kết vòng – gọi tắt là danh sách liên kết vòng

+ Liên kết đôi: Tương ứng ta có cấu trúc dữ liệu danh sách liên kết đôi (liên kết kép) – gọi tắt là danh sách liên kết kép

+ Đa liên kết: Tương ứng ta có danh sách đa móc nối

Trong bài giảng này ta trung nguyên cứu cấu trúc danh sách liên kết đơn. Các cấu trúc danh sách liên kết khác dành cho bạn đọc.

Một phần của tài liệu Bài giảng môn Cấu Trúc Dữ Liệu và Thuật toán doc (Trang 29 - 31)