1. Trang chủ
  2. » Khoa Học Tự Nhiên

CHƯƠNG 4: TẬP HỢP pot

52 1,8K 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 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

Ngày đăng: 31/07/2014, 16:20

TỪ KHÓA LIÊN QUAN

w