Biểu diễn tập hợp trên máy tính và cài đặt các phép toán trên tập hợp

Một phần của tài liệu Giáo Trình Cấu Trúc Dữ Liệu Và Thuật Toán (Trang 67 - 68)

Các phần tử của tập hợp có thể là các đối tượng có kiểu dữ liệu cơ bản hoặc là các đối tương có kiểu dữ liệu phức tạp, các đối tượng này có thể được biểu diễn bởi bản ghi, các trường là các thuộc tính của đối tượng.

Có nhiều phương pháp để cài đặt mô hình dữ liệu tập hợp trong MT. Trong từng áp dụng, tuỳ thuộc vào các phép toán cần thực hiện, giá trị các phần tử trong tập hợp và kích cỡ (số các phần tử của tập hợp) mà ta lựa chọn cách cài đặt sao cho các phép toán thực hiện có hiệu quả nhất. Chẳng hạn nếu chúng ta thường xuyên sử dụng phép thêm vào và loại bỏ các phần tử trong tập hợp thì chúng ta sẽ tìm cách cài đặt hiệu quả cho các phép toán này. Còn nếu phép tìm kiếm một phần tử xảy ra thường xuyên thì ta có thể phải tìm cách cài đặt phù hợp để có hiệu quả tốt nhất. Ta xét các phương pháp cài đặt tập hợp sau:

5.3.1.Cài đặt tập hợp bởi vectơ bit

Giả sử, xét tập hợp A gồm các số nguyên thuộc phạm vi từ 1 đến n (hoặc được mã hóa thành các số nguyên thuộc phạm vi từ 1 -> n). Khi đó ta có thể dùng véc tơ bit (mảng boolean) để biểu diễn tập A : (A[1], A[2], ... ,A[n]), trong đó thành phần thứ i : A[i] = true nếu i  A, A[i] = false nếu iA.

Ví dụ: Giả sử các phần tử của tập hợp được lấy trong các số nguyên từ 1 đến 10, khi đó tập hợp được biểu diễn bởi một mảng một chiều có 10 phần tử với các giá trị phần tử thuộc kiểu logic. Chẳng hạn tập hợp A={1,3,5,8} được biểu diễn trong mảng có 10 phần tử như sau:

1 2 3 4 5 6 7 8 9 10

1 0 1 0 1 0 0 1 0 0

Nhận xét:

Với cách khai báo này các phép toán trên tập được thực hiện dễ dàng bằng cách sử dụng các phép toán logic trong ngôn ngữ lập trình. Ví dụ thêm x vào A chỉ việc cho A[x] = true , để xác định xem x có là phần tử của tập A không ta chỉ cần biết A[x] là

true hay false, ……. ;

Danh sách kế tiếp (mảng)(2) Cài đặt tập hợp bởi

danh sách

Cài đặt tập hợp bởi véc tơ bit (1)

Danh sách liên kết (3) Danh sách được sắp (5)

Một phần của tài liệu Giáo Trình Cấu Trúc Dữ Liệu Và Thuật Toán (Trang 67 - 68)

Tải bản đầy đủ (PDF)

(76 trang)