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

Chương 4 Tìm kiếm docx

40 270 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 40
Dung lượng 619 KB

Nội dung

       !"#$%  &' (  )*  +%&' *')*  ,)-$ ."  /   !"#$% 0&1$23" 45+ 6789:7895;&&+(< 79=>2?+=&2@A;& !B!"755!B3!)1$57C !"789<".D7)"3"3 789<BEF35$ G3" 45+6789H3 "!I+789 D DJDK D D5C !"697L"$'0M     !"#$% 0"E1$23" 4 569!)5$<<"!) 5$DDKD5ANODM 0H> %P"334 Q 792@5!)5$OD<FR75.  7930%&K%%S&F Q 0T'2@3"55$2?D<EF3  030&%&K%%S&FUR3'5 =D&T>'V&J&2W%&!)DH3"69< EF3 52W%&  X  &JYZ%K[&K$F %K$!\  U3 7@H3W 7=  ]^4G_7J&`2@aT<FJ F9%"%5$ HI5$ a1$2@!"2@<"I 792@"&8"C7L 2@ 3$T'  b  &JYZ%K[&K$F %K$!\  @&64 cdefdcdghZ<<D\ ii^7J& OjklmOD ii5$!"#L' nFKZkmoOD\#"llj /iiT'$'0 SZOOl\!K&!pii0T' KF%K!K&!j cdefdcdghZ<<D\ ii^7J& OjklmOD ii5$!"#L' nFKZkmoOD\#"llj /iiT'$'0 SZOOl\!K&!pii0T' KF%K!K&!j  q  &JYZ%K[&K$F %K$!\  @&6Z@&67>[&'!" #$%FV \4 "#Kr#K[&'Z%!&"#KrS!%<KFKKs'KK\ t SZS!%OOfUU\ !K&!fUUj KF%K SZS!%uKFKKOOK\!K&!S!%j KF%K !K&!#K[&'ZS!%uKD<K\j v "#Kr#K[&'Z%!&"#KrS!%<KFKKs'KK\ t SZS!%OOfUU\ !K&!fUUj KF%K SZS!%uKFKKOOK\!K&!S!%j KF%K !K&!#K[&'ZS!%uKD<K\j v  w  &JYZ%K[&K$F %K$!\  ,@&64 !B98T4  Oj !B9DT&T4 $D OxZ\j !&2 2 OxZ\  y  )*ZG$!' cK!\  U3 0#z  ]^4 Q {L'5$7L79%_D K"aYZ|#J "C@#J\ Q @%}#L'5$7$D.F3FH3!5$^~$ #L'%PF3HIOZFl!\i Q  %P R &DO9FN< &D•< . %P79Y> HIF<<  &Du<. %P79Y> HI lHI! Q e&! %P#`T'5$"C #L'7$D.!^V!:  p  )*ZG$!' cK!\  @&64 Ggh€cdghZ<<D\ 2lOj!Ojii^7J& 2nFKZF•O!\#"ii  tOZFl!\ijii(•%8~$ SD•kmK!O KF%KSDukmKFOlj KF%K!K&!j v 2/!K&!pjii0T' Ggh€cdghZ<<D\ 2lOj!Ojii^7J& 2nFKZF•O!\#"ii  tOZFl!\ijii(•%8~$ SD•kmK!O KF%KSDukmKFOlj KF%K!K&!j v 2/!K&!pjii0T' [...]... kiếm 15 4. 2.1 Định nghĩa  Ví dụ: 34 66 17 25 50 71 68 75 16 4. 2.1 Định nghĩa  Bài tập tại lớp – Vẽ 4 cây nhị phân tìm kiếm với các giá trị sau: 3, 4, 6, 8, 9, 10, 14, 15, 17 – Vẽ cây nhị phân tìm kiếm cân đối cho các giá trị trên với số nút rỗng là ít nhất 17 4. 2.2 Các phép toán  Phép tìm kiếm  Phép chèn thêm một nút  Phép gỡ loại bỏ một nút 18 4. 2.2.1... thì tiến hành ở nhánh con bên trái hoặc bên phải để đảm bảo tính chất của cây nhị phân tìm kiếm 22 4. 2.2.2 Phép thêm một nút  Ví dụ: Thêm các nút 5, 2, 4, 6, 1, 7, 3 vào một cây rỗng theo đúng thứ tự  Qua từng bước thêm, ta có cây sau: 5 2 1 6 4 7 3 23 4. 2.2.2 Phép thêm một nút void chen(int e, NODE **root) void chen(int e, NODE **root) { { NODE *tam; NODE *tam;... tìm kiếm nhị phân) 13 4. 2 Cây nhị phân tìm kiếm  Việc tổ chức tập hợp khóa theo cấu trúc danh sách thì phép tìm kiếm nói chung là chi phí cao, nếu khóa đã sắp xếp thì phép tìm kiếm nhị phân hiệu quả hơn nhưng bất tiện trong việc thêm, bớt phần tử  Cấu trúc cây nhị phân tìm kiếm được xây dựng để khắc phục các nhược điểm trên 14 4.2.1 Định nghĩa ... else else 33 4. 2.2.3 Phép xóa một nút Thủ tục xóa if ((*root)->left == NULL) (*root) = (*root)->right; if ((*root)->left == NULL) (*root) = (*root)->right; else else if ((*root)->right==NULL) (*root) = (*root)->left; if ((*root)->right==NULL) (*root) = (*root)->left; else (*root)->element = xoacuctrai(&(*root)->right); else (*root)->element = xoacuctrai(&(*root)->right); } } 34 4.3 Cây nhị... tam = new NODE; tam->element = e; tam->element = e; tam->left = NULL; tam->left = NULL; tam->right = NULL; tam->right = NULL; if (*root == NULL) *root = tam; if (*root == NULL) *root = tam; else else 24 4.2.2.2 Phép thêm một nút if (tam->element < (*root)->element) if (tam->element < (*root)->element) if ((*root)->left) chen(e, &(*root)->left); if ((*root)->left) chen(e, &(*root)->left); else (*root)->left... chen(e, &(*root)->right); else (*root)->right = tam; else (*root)->right = tam; else cout element; k=(*root)->element; (*root) = (*root)->right; (*root) = (*root)->right; return k; return k; } } else return xoacuctrai(&(*root)->left); else return xoacuctrai(&(*root)->left); } } 32 4. 2.2.3... Return loc; 4. 1.2 Tìm kiếm nhị phân (Binary Serching)  Đánh giá giải thuật: – – – Trường hợp tốt nhất Tmin =1, tìm được ngay lần đầu tiên Trường hợp xấu nhất Tmax = k+w[n/2k) Chứng minh được Ttb = O(log2n) Trong tất cả các giải thuật tìm kiếm, tìm kiếm nhị phân là nhanh nhất, nhưng nó có nhược điểm là dãy phải được sắp xếp 12 Bài tập về nhà B1 Viết chương. .. timdequy(x,root->left); if (x < root->element) timdequy(x,root->left); else if (x>root->element) timdequy (x,root->right); else if (x>root->element) timdequy (x,root->right); else timthay =1; else timthay =1; } } 20 4. 2.2.1 Phép tìm kiếm Thủ tục không đêê quy int tim(int x,NODE *root) int tim(int x,NODE *root) { { int timthay =0; int timthay =0; while ((root !=NULL) && (!timthay)) while ((root !=NULL) && (!timthay)) . &JYZ%K[&K$F %K$!  ,@&6 4 !B98T 4   Oj !B9DT&T 4  $D OxZj !&2 2 OxZ  y  )*ZG$!' cK!  U3.  !"#$% 0"E1$23" 4 569!)5$<<"!) 5$DDKD5ANODM 0H> %P"33 4 Q 792@5!)5$OD<FR75. . F•! thenF"OpiiF"a$•%8a1$ ii5$J elseOZFl!ij ifD•km thenF"OhGgh€cdghZF<<<D elseSDukm thenF"OhGgh€cdghZl<!<<D elseF"Oj G 4 ReturnF"j    )*ZG$!' cK!  ,@&6 4 Q !B98TO<79$' FJ7J&V Q !B9DT&T$DOlnki Q a792OxZF" !"T@@&6

Ngày đăng: 03/04/2014, 01:20

TỪ KHÓA LIÊN QUAN

w