1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng cấu trúc dữ liệu chương 4 TS trần cao đệ

45 215 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 45
Dung lượng 374,56 KB

Nội dung

Ch ng 4: T P H P TS Tr n Cao N m 2007 KHÁI NI M T P H P • Khái ni m t p h p c ng nh toán h c, s t p h p thành viên (members) ho c ph n t (elements) – T t c ph n t c a t p h p khác – T p h p có th có th t ho c th t KI U D • • • • • • • • • • LI U TR U T T PH P NG Th t c UNION(A,B,C) nh n vào tham s A,B,C; tr k t qu t p h p C = A ∪B Th t c INTERSECTION(A,B,C) nh n vào tham s A,B,C; k t qu t p h p C = A ∩ B Th t c DIFFERENCE(A,B,C) nh n vào tham s A,B,C; k t qu t p h p C = A\B Hàm MEMBER(x,A) N u x ∈ A hàm cho k t qu (đúng), ng c l i cho k t qu (sai) Th t c MAKENULL_SET(A) t o t p h p A t p r ng Th t c INSERT_SET(x,A) thêm x vào t p h p A Th t c DELETE_SET(x,A) xoá x kh i t p h p A Th t c ASSIGN(A,B) gán A cho B ( t c B:=A ) Hàm MIN(A) cho ph n t bé nh t t p A Hàm EQUAL(A,B) cho k t qu TRUE n u A=B ng c l i cho k t qu FALSE CÀI • TT PH P Cài đ t t p h p b ng vector Bit – Khi toàn th t p h p t p h p c a m t t p h p s nguyên n m ph m vi nh t n ch ng h n – Dùng m t m ng ki u Boolean có n ph n t đ cài đ t t p h p (ta g i vect bít), • • Ph n t th i c a m ng giá tr TRUE n u i thu c t p h p Ph n t th i c a m ng giá tr FALSE n u i KHÔNG thu c t p h p • Ch ng h n t p h p A={1,3,5,8} đ c bi u di n m ng có 10 ph n t nh sau: 10 1 0 0 const maxlength = 100; // giá tr ph n t l n nh t t p h p s nguyên không âm typedef int SET [maxlength]; T o m t t p h p r ng void MAKENULL_SET(SET& a){ int i; for(i=0;i[...]... gi a làm k t qu c a hàm b m" x x2 h(x) g m 3 s 540 2 291816 04 181 ho c 816 0367 001 346 89 1 34 346 1 246 01552516 552 525 2983 08898289 898 982 gi a 33 Ph ng pháp tách • Tách: tách khóa ra t ng đo n r i x p các đo n thành hàng đ c canh th ng m t đ u r i có th c ng chúng l i r i áp d ng ph ng pháp chia đ có k t qu b m • ví d : khoá 17 046 329 tách thành 329 046 017 c ng l i ta đ c 392 392 mod 1000 = 392 là... Acurrent=Acurrent->next; Bcurrent=Bcurrent->next; } else if (Acurrent->elementelement) Acurrent=Acurrent->next; A: 1, 4, 6, 7, 8, 11 else Bcurrent=Bcurrent->next; } B: 1,3 ,4, 5,7,10 Ccurrent->next=NULL; } A ∩ B = 1, 4, 7 12 • Phép toán hop, hi u có th vi t t ng t (xem nh bài t p) • Phép ASSIGN(A,B) chép các các ph n t c a t p A sang t p B, chú ý r ng ta không đ c làm b ng l nh gán đ n gi n B=A!... n t c a t đi n ngay trong m ng 0 – Chi n l c th tuy n tính hi(x)=(h(x)+i) mod B 2 Ví d B=8 và các ph n t c a t đi n là a,b,c,d có giá tr b m l n l t là: h(a)=3, h(b)=0, h(c) =4, h(d)=3 4 c +++++ Tim e biet h(e)=3 b 1 3 5 a d 6 7 24 Cài đ t b ng b m m Khai báo #define B typedef ElementType; typedef struct Node{ ElementType Data; Node* Next; }; typedef Node* Position; typedef Position Dictionary[B];... m t i m t v trí sau khi g p d c x p l i th ng hàng v i nhau r i có th c ng l i r i áp d ng ph ng pháp chia (mod) đ cho k t qu b m • Ví d : khoá 17 046 329 g p hai biên vào ta có 923 046 710 C ng l i ta có 1679 1679 mod 1000= 679 là k t qu b m khoá đã cho 34 HÀNG U TIÊN (priority queue) Khái ni m hàng u tiên • Hàng u tiên là m t ki u d li u tr u t ng t p h p đ c bi t, trong đó m i ph n t có m t đ u tiên... h(ElementType x){ int i,sum=0; for (i=0;i > h(x) x Ch s Ph n t {0 B-1} h(x) B ng b m 21 #define B … typedef char* ElementType; int h(ElementType x){ int i,sum=0; for (i=0;ielement next; else break; // P dang luu tru vi tri de xen phan tu X vao if (P->next!=NULL) && (P->next->element!=x){ T=(SET)malloc(sizeof(Cell)); T->element=X; T->next=P->next; P->next=T; } } 14 Xoá ph n t ra kh i t p h p t ch c nh danh sách có th t ng void DELETE_SET(ElementType X, SET& L) { SET T,P; P=L; while (P->next!=NULL) if (P->next->elementnext; else break; if (P->next!=NULL) ... v i r i ch n m t s ch s gi a làm k t qu c a hàm b m" x x2 h(x) g m s 540 2 291816 04 181 ho c 816 0367 001 346 89 1 34 346 1 246 01552516 552 525 2983 08898289 898 982 gi a 33 Ph ng pháp tách • Tách:... l t nút có khóa nh nh t "); while (L.Last>0) printf("%d ", DeleteMin(L)); getch(); } 44 Bài t p ch ng 45 ... chia (mod) đ cho k t qu b m • Ví d : khoá 17 046 329 g p hai biên vào ta có 923 046 710 C ng l i ta có 1679 1679 mod 1000= 679 k t qu b m khoá cho 34 HÀNG U TIÊN (priority queue) Khái ni m hàng

Ngày đăng: 03/12/2015, 08:14

TỪ KHÓA LIÊN QUAN