Các phép toán trên danh dách

Một phần của tài liệu Giáo trình Cấu trúc dữ liệu và giải thuật - CĐ Nghề Cơ điện Hà Nội (Trang 37 - 38)

Đối với danh sách thì thường có phép khởi tạo danh sách rổng, kiểm tra danh sách rổng, chèn phần tử vào danh sách, xóa phần tử khỏi danh sách. Ngoài ra có thể còn có các phép như:

Tìm kiếm một phần tử theo một tiêu chí xác định Sắp xếp các phần tử theo một thứ tự ấn định

Ghép hai hoặc nhiều danh sách thành một danh sách lớn. Tách một danh sách thành nhiều danh sách con v.v…

2.Cài đặt danh sách theo cấu trúc mảng

Chúng ta có thể cài đặt danh sách bằng mảng như sau: dùng một mảng để lưu giữ liên tiếp các phần tử của danh sách từ vị trí đầu tiên của mảng. Với cách

cài đặt này, ta phải ước lượng số phần tử của danh sách để khai báo số phần tử của mảng cho thích hợp. Dễ thấy rằng số phần tử của mảng phải được khai báo không ít hơn số phần tử của danh sách. Nói chung là mảng còn thừa một số chỗ trống. Mặt khác ta phải lưu giữ độ dài hiện tại của danh sách, độ dài này cho biết danh sách có bao nhiêu phần tử và cho biết phần nào của mảng còn trống.

Chúng ta mô tả danh sách được cài đặt bằng mảng như sau:

Chỉ số 1 2 … Last ... Maxlength Nội dung phần tử Phần tử thứ 1 Phần tử thứ 2 … Phần tử cuối cùng trong danh sách ...

Ta xem vị trí của một phần tử trong danh sách là chỉ số của mảng tại vị trí lưu trữ phần tử đó.

Các khai báo cần thiết là:

Const MaxLength ...

{Số nguyên thích hợp để chỉ độ dài của danh sách}

Type

... Kieuphantu; {kiểu của phần tử trong danh sách} Type

Position = integer; { Kiểu vị trí của các phần tử } Type

Tenkieumang = ARRAY [Chỉ số] OF Kieuphantu; {mảng chứa các phần tử của danh sách }

Position Last; {giữ độ dài danh sách } end;

Trên đây là sự biểu diễn kiểu dữ liệu trừu tượng danh sách bằng cấu trúc dữ liệu mảng. Phần tiếp theo là cài đặt các phép toán cơ bản trên danh sách.

Một phần của tài liệu Giáo trình Cấu trúc dữ liệu và giải thuật - CĐ Nghề Cơ điện Hà Nội (Trang 37 - 38)