Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 52 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
52
Dung lượng
279,54 KB
Nội dung
CH NG 4:ƯƠ T P H PẬ Ợ Nguy n Văn Linhễ Khoa Công ngh Thông tin - Truy n thôngệ ề Đ i h c C n Thạ ọ ầ ơ Nguy n Văn Linhễ Nguy n Văn Linhễ N I DUNGỘ • Khái ni m t p h pệ ậ ợ • Các phép toán trên t p h pậ ợ • Cài đ t t p h pặ ậ ợ • T đi nừ ể • B ng bămả Nguy n Văn Linhễ KHÁI NI M T P H PỆ Ậ Ợ • T p h p các thành viên (members) ho c ph n t ậ ợ ặ ầ ử (elements) nh khái ni m toán h c.ư ệ ọ • Các ph n t c a t p h p ph i khác nhauầ ử ủ ậ ợ ả • T p h p có th t ho c không có th t .ậ ợ ứ ự ặ ứ ự • đây ta s xét t p h p có th t , t c là trên t p Ở ẽ ậ ợ ứ ự ứ ậ h p S có các quan h < th a mãn:ợ ệ ỏ • V i m i a, b trong S thì a<b ho c b<aớ ọ ặ • V i m i a, b, c trong S, n u a<b và b<c thì a<cớ ọ ế Nguy n Văn Linhễ BI U DI N T P H P (1)Ể Ễ Ậ Ợ • Li t kê các ph n t trong c p d u ngo c {}ệ ầ ử ặ ấ ặ – x∈ S : x là m t ph n t c a t p h p Sộ ầ ử ủ ậ ợ – x∉ S : x không là m t ph n t c a t p h p Sộ ầ ử ủ ậ ợ ∅ : t p h p r ng, không có thành viênậ ợ ỗ – VD: A={1,2} B= {1,2,3} Nguy n Văn Linhễ BI U DI N T P H P (2)Ể Ễ Ậ Ợ • Cho hai t p h p A và B:ậ ợ – A là 1 b ph n c a B, kí hi u A ộ ậ ủ ệ ⊆ B: n u m i ph n ế ọ ầ t c a A đ u là ph n t c a Bử ủ ề ầ ử ủ • VD: A ⊆ B – T p h p A và B b ng nhau, kí hi u A = B:n u Aậ ợ ằ ệ ế ⊆ B và B⊆ A – H p c a hai t p h p: Aợ ủ ậ ợ ∪B={x| x⊆A ho c xặ ∈B} – Giao c a hai t p h p: Aủ ậ ợ ∩B={x| x∈A và x∈B} – Hi u c a hai t p h p: A\B={x| xệ ủ ậ ợ ∈A và x∉B} Nguy n Văn Linhễ CÁC PHÉP TOÁN TRÊN T P H PẬ Ợ Phép toán Di n gi iễ ả Make_Null_Set(S) T o t p h p S r ngạ ậ ợ ỗ Empty_Set(S) Ki m tra xem t p h p S có r ng?ể ậ ợ ỗ Member(X,S) Ki m tra xem X có thu c S?ể ộ Insert_Set(X,S) Thêm ph n t X vào t p h p Sầ ử ậ ợ Delete_Set(X,S) Xoá ph n t X trong t p h p Sầ ử ậ ợ Union(A, B,C) C=A∪B Intersection(A, B, C) C=A∩B Difference(A,B,C) C=A\B Nguy n Văn Linhễ CÀI Đ T T P H PẶ Ậ Ợ • CÀI Đ T B NG VECT BITẶ Ằ Ơ • CÀI Đ T B NG DANH SÁCH LIÊN K TẶ Ằ Ế Nguy n Văn Linhễ CÀI Đ T T P H P B NG VECT BIT (1)Ặ Ậ Ợ Ằ Ơ • Th ng đ c dùng khi t p h p c a ta là 1 t p con c a t p ườ ượ ậ ợ ủ ậ ủ ậ s nguyên, có giá tr t 0 n-1. Khi đó ta s dùng 1 m ng các ố ị ừ ẽ ả bit có kích th c n đ l u tr t p h p ướ ể ư ữ ậ ợ • N u i thu c t p h p thì ph n t th i c a m ng có giá tr 1 ế ộ ậ ợ ầ ử ứ ủ ả ị • VD: mu n l u tr các t p có giá tr ph n t t 0 9. Ta dùng ố ư ữ ậ ị ầ ử ừ m ng có t i đa 10 ph n t .ả ố ầ ử • T p h p A={2,5,7,9} s đ c bi u di n b i:ậ ợ ẽ ượ ể ễ ở 0 1 2 3 4 5 6 7 8 9 0 0 1 0 0 1 0 1 0 1 Nguy n Văn Linhễ CÀI T P H P Đ T B NG VECT BIT (2)Ậ Ợ Ặ Ằ Ơ • Khai báo const Max_Length = 100; // giá tr ph n t l n nh t ị ầ ử ớ ấ typedef int Set [Max_Length]; • T o t p h p r ng:ạ ậ ợ ỗ void Make_Null_Set (Set &a){ int i; for(i=0;i<Max_Length;i++) a[i]=0; } • T o h p c a 2 t p h pạ ợ ủ ậ ợ void Set_Union (Set a,Set b,Set &c){ for (int i=0; i<Max_Length; i++) if((a[i]==1)||(b[i]==1)) c[i]=1; else c[i]=0; } Nguy n Văn Linhễ CÀI Đ T T P H P B NG VECT BIT (3)Ặ Ậ Ợ Ằ Ơ • T o giao c a 2 t p h pạ ủ ậ ợ void Set_Intersection(Set a,Set b,Set &c){ for (int i=0; i<Max_Length; i++) if ((a[i]==1)&&(b[i]==1)) c[i]=1; else c[i]=0; } • T o hi u c a hai t p h pạ ệ ủ ậ ợ void Set_Difference(Set a,Set b,Set &c){ for (int i=0; i< Max_Length; i++) if ((a[i]==1)&& (b[i]==0)) c[i]=1; else c[i]=0; } [...]... ĐẶT TẬP HỢP BẰNG DSLK • Ưu điểm: Có thể biểu diễn cho một tập hợp bất kỳ, số lượng phần tử không hạn chế • Nhược điểm: Tốc độ thực hiện chậm Nguyễn Văn Linh BÀI TẬP • Viết các khai báo cấu trúc dữ liệu và các thủ tục/hàm cho các phép toán trên tập hợp để cài đặt tập hợp kí tự (256 kí tự ASCII) bằng vectơ bit Nguyễn Văn Linh TỪ ĐIỂN • Khái niệm: là một tập hợp mà ta không quan tâm đến các phép toán hợp, ...CÀI ĐẶT TẬP HỢP BẰNG VECTƠ BIT (3) • Xét xem một phần tử có thuộc một tập hợp hay không? int Member (int i, Set a) { if (iMax_Length-1) return 0; return a[i]==1; } Nguyễn Văn Linh CÀI ĐẶT TẬP HỢP BẰNG VECTƠ BIT (3) • Cài đặt Hợp của 2 tập hợp bằng cách dùng hàm member void Set_Union (Set a,Set b,Set &c){ int i; for (i=0;iNext=P->Next; P->Next=T; } } Nguyễn Văn Linh CÀI ĐẶT TẬP HỢP BẰNG DSLK(4) • Xóa một phần tử khỏi tập void Delete_Set(Element_Type X, Set &S) { Position T,P=S; int Found=0; while ((P->Next!=NULL)&& (!Found)) if (P->Next->Data==X) Found =1; else P=P->Next; if (Found){ T=P->Next; P->Next=T->Next; free(T); } } Nguyễn Văn Linh CÀI ĐẶT TẬP HỢP BẰNG DSLK(5) • Hợp của hai tập hợp void Set_Union(Set A, Set B, Set &C) {... (Member(i,a) || Member(i,b)) c[i]=1; else c[i]=0; } Nguyễn Văn Linh CÀI ĐẶT TẬP HỢP BẰNG VECTƠ BIT (3) • Xen một phần tử i vào trong tập hợp a void Insert_Set (int i, Set &a){ if ((iMax_Length-1)) printf(“Gia tri khong hop le\n”); else a[i]=1; } Nguyễn Văn Linh CÀI ĐẶT TẬP HỢP BẰNG VECTƠ BIT (3) • Xoá một phần tử i trong tập hợp a void Delete_Set (int i, Set &a){ if ((iMax_Length-1))... (!Member(P->Next->Data,A)) Insert_Set (P->Next->Data,C); P=P->Next; } } Nguyễn Văn Linh CÀI ĐẶT TẬP HỢP BẰNG DSLK(6) • Tìm giao void Set_Intersection(Set A, Set B, Set &C) { Position P; Make_Null_Set(C); P=A; while (P->Next!=NULL){ if (Member(P->Next->Data,B)) Insert_Set (P->Next->Data,C); P=P->Next; } } Nguyễn Văn Linh CÀI ĐẶT TẬP HỢP BẰNG DSLK(7) • Tìm Hiệu void Set_Difference(Set A, Set B, Set &C) { Position P;... Nguyễn Văn Linh CÀI ĐẶT TẬP HỢP BẰNG DSLK (2) • Kiểm tra một phẩn tử có thuộc tập không? int Member(Element_Type X, Set S){ Position P; int Found = 0; P = S; while ((P->Next != NULL) && (!Found)) if (P->Next->Data == X) Found = 1; else P = P->Next; return Found; } Nguyễn Văn Linh CÀI ĐẶT TẬP HỢP BẰNG DSLK(3) • Thêm một phần tử vào tập void Insert_Set(Element_Type X, Set &S){ Position T,P; int Finish=0;... các phép toán trên tập hợp để cài đặt tập hợp kí tự (256 kí tự ASCII) bằng vectơ bit Nguyễn Văn Linh TỪ ĐIỂN • Khái niệm: là một tập hợp mà ta không quan tâm đến các phép toán hợp, giao và hiệu của 2 tập hợp • Do trong một số ứng dụng, chỉ sử dụng các phép toán Insert_Set, Delete_Set và Member • Có thể cài đặt từ điển bằng: – Véct-bít – Danh sách liên kết có thứ tự hoặc không thứ tự – Mảng có kích thước . CH NG 4: Ơ T P H PẬ Ợ Nguy n Văn Linhễ Khoa Công ngh Thông tin - Truy n thôngệ ề Đ i h c C n Thạ ọ ầ ơ Nguy