Giáo trình cấu trúc dữ liệu Trần Cao Đệ

134 125 0
Giáo trình cấu trúc dữ liệu  Trần Cao Đệ

Đ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

DATA STRUCTURES TR NăCAOă 2012 M CăL C CH NGăI:ăM ă T U 4 BĨẤ TOÁN N Cả NẢ TậÌNả Mơ hình hóa tốn Gi iăthu tă(algorithms) Ngônăng ăgi ăvàătinhăch ăt ngăb că(Pseudo-language and stepwise refinement) 10 Tómăt t 13 KẤ U D LẤ U Tậ U T NẢ (ABSTậACT DATA TYPE -ADT) 13 Kháiăni mătr uăt ngăhóa 13 Tr uăt ngăhóaăch ngătrình 14 Tr uăt ngăhóaăd ăli u 14 I II III KẤ U D LẤ U - C U TậÚC D LẤ U VĨ KẤ U D LẤ U Tậ U T NẢ (DATA TYPES, DATA STRUCTURES, ABSTRACT DATA TYPES) 15 BĨẤ T P 17 CH NGăII:ăCỄCăKI UăD ăLI UăTR UăT I KẤ U D LẤ U Tậ U T NẢ DANả SÁCả (LẤST) 18 Kháiăni mădanhăsách 18 Các phép toán danh sách 18 Càiăđ tădanhăsách 20 a b c II Cài đ t danh sách b ng m ng (danh sách đ c) 20 Cài đ t danh sách b ng tr (danh sách liên k t đ n) 25 Cài đ t b ng nháy 30 NẢ N X P (STACK) 35 nhăngh aăng năx p 35 Cácăphépătoánătrênăng năx p 35 Càiăđ tăng năx p 35 a b Cài đ t ng n x p b ng danh sách 36 Cài đ t b ng m ng 37 ngăd ngăng năx păđ ălo iăb ăđ ăquiăc aăch ngătrình 39 ảĨNẢ Ấ (ẬUEUE) 43 nhăNgh a 43 Cácăphépătoánăc ăb nătrênăhàng 44 Càiăđ tăhàngăđ i 44 III a b c d NGăC ăB Năă(BASICăABSTRACTăDATAăTYPES) 18 Cài đ Cài đ Cài đ Cài đ t hàng b t hàng b t hàng v t hàng b ng m ng 44 ng m ng theo ph ng pháp t nh ti n 45 i m ng xoay vòng 47 ng danh sách liên k t ( hay cài đ t b ng tr ) 49 M tăs ă ngăd ngăc aăc uătrúcăhàng 51 DANả SÁCả LẤÊN K T KÉP (ếỊỐbệe - lists) 51 IV BĨẤ T P 56 CH NGăIII:ăC UăTRÚCăCỂY (TREES) 60 I II III CÁC TảU T NẢ C B N TậÊN CÂY 60 nhăngh aăcây 60 Th ăt ăcácănútătrongăcây 61 Cácăth ăt ăduy tăcâyăquanătr ng 61 Câyăcóănhãnăvàăcâyăbi uăth c 62 KẤ U D LẤ U Tậ U T NẢ CÂY 64 CĨẤ T CÂY 65 Càiăđ tăcâyăb ngăm ng 65 i Bi uădi năcâyăb ngădanhăsáchăcácăcon 70 Bi uădi nătheoăconătráiănh tăvàăanhăemăru tăph i 71 Càiăđ tăcâyăb ngăconătr 73 CÂY Nả PảÂN (BẤNAậY TậEES) 75 nhăngh a 75 Duy tăcâyănh ăphân 75 Càiăđ tăcâyănh ăphân 76 CÂY TÌM KẤ M Nả PảÂN (BINARY SEARCH TREES) 79 nhăngh a 79 Càiăđ tăcâyătìmăki mănh ăphân 80 IV V BĨẤ T P 85 CH NGăIV:ăT PăH P 88 I KảÁẤ NẤ M T P ả P 88 II KẤ U D LẤ U Tậ U T NẢ T P ả P 88 CĨẤ T T P ả P 89 Càiăđ tăt păh păb ngăvectorăBit 89 Càiăđ tăb ngădanhăsáchăliênăk t 90 III 2 T Ấ N (DẤCTẤONAậY) 93 Càiăđ tăt ăđi năb ngăm ng 94 Càiăđ tăt ăđi năb ngădanhăsáchăliênăk t 95 C U TậÚC B NẢ B M (ảASả TABLE) 96 K ăthu tăb m 96 B ngăb măm 97 B ngăb măđóng 100 Cácăph ngăphápăxácăđ nhăhàmăb m 103 ảĨNẢ U TẤÊN (ịrỄỊrỄỏy qỐeỐe) 105 Kháiăni măhàngă u tiên 105 Càiăđ tăhàngă uătiên 105 IV V VI Cây có th t t ng ph n 105 Cài đ t có th t t ng ph n b ng m ng 108 a b BĨẤ T P 112 CH NGăV:ă ăTH ă(GRAPH) 114 I CÁC Nả NẢả A 114 II KẤ U D LẤ U Tậ U T NẢ Tả 115 BẤ U DẤ N Tả 116 Bi uădi năđ ăth ăb ngămaătr năk 116 Bi uădi năđ ăth ăb ngădanhăsáchăcácăđ nhăk 118 III 2 CÁC PảÉP DUY T Tả (TậAVEậSALS Oạ ẢậAPả) 118 Duy tătheoăchi uăsâuă(depth-first search) 118 Duy tătheoăchi uăr ngă(breadth-first search) 120 M T S BĨẤ TOÁN TậÊN Tả 122 Bàiătốnătìmăđ ngăđiăng nănh tăt ăm tăđ nhăc aăđ ăth ă(theăsingleăsourceăshortedăpathăproblem) 122 Tìmăđ ngăđiăng nănh tăgi aăt tăc ăcácăc păđ nh 124 Bàiătốnătìmăbaoăđóngăchuy năti pă(transitiveăclosure) 125 Bàiătốnătìmăcâyăbaoătrùmăt iăthi uă(minimum-cost spanning tree) 125 IV V a b Gi i thu t Prim 125 Gi i thu t Kruskal 126 BĨẤ T P 128 TĨẤ LẤ U TảAM Kả O 130 ii L IăNịIă U ăđápă ngănhuăc uăh căt păc aăcácăb năsinhăviên,ănh tălàăsinhăviênăchuyênăngànhă Tinăh c,ăKhoaăCôngăngh ăThôngătin vàăTruy năthôngă- Tr ngă iăh căC năTh ăđãă ti năhànhăbiênăso năcácăgiáoătrình,ăbàiăgi ngăchínhătrongăch ngătrìnhăh c.ăGiáoătrìnhă mơnă C uă trúcă D ă li uă đ că biênă so nă c ă b nă d aă trênă quy nă "Dataă Structuresă andă Algorithms"ăc aăAlfredăV.ăAho,ăJohnăE.ăHopcroftăvàăJeffreyăD.ăUllmanădoăAddisonWesley Giáo trình đ căso nătheoăđ ăc ngăchiăti tămơnăC uătrúc d ăli uăc aăsinhăviênă chuyên ngành Tină h că c aă Khoaă Côngă ngh ă Thôngă tin - Tr ngă iă h că C nă Th ă M cătiêuălà giúpăcácăb năsinhăviênăchunăngànhăcóăm tătàiăli uăcơăđ ngădùngălàmătàiă li uăh căt p.ăTuyăv y,ăcácăđ iăt ngăsinh viên khác v năcóăth ăs ăd ngăgiáoătrìnhănàyă làmă tàiă li uă thamă kh oă hayă t ă h c.ă Chúngă tôiă ngh ă r ngă cácă b nă sinhă viênă khôngă chuyênătinăvàănh ngăng iăquanătâmăt iăcác c uătrúcăd ăli uăvàăgi iăthu tăs ătìmăđ că trongănàyănh ngăđi uăh uăích Giáoătrìnhăđ căphátăhànhăn iăb ăl năđ uătiênăvàoăn mă1998,ăvàăđ căch nhăs a,ătuă b ăhàngăn m.ăL năch nhăs aăvàoăn mă2007ă(vàăhoànăch nhăn mă2008)ăđãăchuy năcácă càiăđ tăb ngăPascalăsangăCăchoăsátăh năv iăsinhăviênăchuyênăngànhă- hi năđangăđ că trangăb ăngônăng ăCănh ălàăngơnăng ăl pătrìnhăc năb n.ăVi căcàiăđ tăcácăc uătrúcăd ă li uă m tă ngơnă ng ă l pă trìnhă c ă th ă nh ă Că hayă Pascală khôngă ph iă làă m că đíchă chínhăc aăgiáoătrình.ăTuyănhiên,ăh uăh tăcácă đo năch ngătrìnhă đ căvi tătrongăgiáoă trìnhăđãăđ căbiênăd chătrongămơiătr ngăVisual C++ 6.0 N iădungăgiáoătrìnhămơn C uătrúcăD ăli uănàyăs ăcungăc păchoăsinhăviênăcácăki nă th căc ăb năv ăcácăki uăd ăli uătr uăt ngăvàăcácăphépătoánăc ăb nătrên ki uăd ă li uătr uăt ngăđó.ăSauăkhiăh căxongămơnănày,ăsinhăviênăs :  N măđ căkháiăni măki uăd ăli u,ăki uăd ăli uătr uăt ng  N măv ngăvàăcàiăđ tăđ căcácăki uăd ăli uătr uăt ngăc ăb nănh ădanhăsách,ă ng năx p,ăhàngăđ i,ăcây,ăt păh p,ăb ngăb m,ăđ ăth ăb ngăm tăngơnăng ăl pă trìnhăc năb n  V năd ngăđ căcácăki uăd ăli uătr uăt t hayătrongăKhoaăh cămáyătính Giáoă trìnhă nàyă đ ngành : ngăđ ăgi iăquy tăbàiătốnătrongăth că că biênă so nă đ ă gi ngă d yă choă sinhă viênă b că đ iă h că chuyênă  Tinăh că  Toán-Tin  Lý-Tin  i năt ă- Vi năthơngăvàăT ăđ ngăhóa Giáoă trìnhă cònă cóă th ă dùngă đ ă gi ngă d yă nh ă làă mônă h că c ă b n trongă t tă c ă cácă ngànhăg năv iăTinăh c ăh căt tămơnăC uătrúcăD ăli uănày,ăsinhăviênăc năph iăcóăcácăki năth căc ăb n:  Ki năth căvàăk ăn ngăl pătrìnhăc năb n.ăVi cădùngăm tăngơnăng ăl pătrìnhăc ă th ăkhơngăph iălàăm tăuăc uăb tăbu c.ăGiáoătrìnhănàyăminhăh aăcácăcàiăđ tă c ă th ă b ngă ngơnă ng ă C/C++ đóă làă m tă ngơnă ng ă quenă thu că đ iă v iă sinhă viênăchuyênăngànhăTinăh c.ă  Ki năth cătốnăr iăr c N iădungăgiáoătrìnhăg mă5ăch ngăvàăđ căthi tăk ătrongăkhnăkh ă3 tínăch ă(45 ti t)ăc aăm tămơnăh cătrongăch ngătrìnhăđ iăh c,ătrongăđóăcóăkho ngă30ăti tăgi ngălý thuy tăvàă15 ti tăbàiăt pămàăgiáoăviênăs ăh ngăd năchoăsinhăviênătrênăl p.ăN iădungă giáoătrìnhăh iăchúătr ngăv ăcácăc uătrúcăd ăli uăvàăcácăgi iăthu tătrênăcácăc uătrúcăd ă li uăđóăh nălàăcácăch ngătrìnhăhồnăch nhătrongăngơnăng ăl pătrìnhăC/C++ Ch ngă1:ăTrìnhăbàyăcáchăti păc năt ăm tăbàiătốnăđ năch ngătrình,ănóăbaoăg mă mơăhìnhăhốăbàiătốn,ăthi tăl păc uătrúcăd ăli uătheoămơăhìnhăbàiătốn,ăvi tăgi iăthu tă gi iă quy tă bàiă tốnă vàă cácă b cătinhăch ă gi iă thu tă đ aă đ nă càiă đ tă c ă th ă trongă m tă ngơnăng ăl pătrình Ch ngă2:ăTrìnhăbàyăki uăd ăli uătr uăt ngădanhăsách,ăcácăc uătrúcăd ăli uăđ ăcàiă đ tădanhăsách.ăNg năx păvàăhàngăđ iăc ngăđ cătrìnhăbàyătrongăch ngănàyănh ălàăhaiă c uătrúcădanhăsáchăđ căbi t.ă ngăd ngăng năx păđ ăkh ăđ ăquiăc aăch ngătrìnhăđ că coiălàăm tă ngăd ngăquanătr ngăc aăc uătrúcăng năx p.ăNgồiăraăchúngătơiăcònăg iăýă m tăs ă ngăd ngăc aăc uătrúcăhàngăđ i.ăCu iăch ng dànhăđ ătrìnhăbàyăc uătrúcădanhă sáchăliênăk tăképăchoănh ngăbàiătốnăc năduy tădanhăsáchătheoăhaiăchi uăxi,ăng că m tăcáchăthu năl i.ă Ch ngănàyăcóănhi uăcàiăđ tăt ngăđ iăchiăti tăđ ăcácăb năsinhăviênăm iăti păc năv iă l pătrìnhăcóăc ăh iănângăcaoăkh ăn ngăl pătrìnhătrongăngơnăng ăC/C++ đ ngăth iăc ngă nh măminhăh a vi căcàiăđ tăm tăki uăd ăli uătr uăt ngătrongăm tăngơnăng ăl pătrìnhă c ăth Ch ngă3:ăGi iăthi uăv ăki uăd ăli uătr uăt ngăcây,ăkháiăni măcâyăt ngăquát,ăcácă phépăduy tăcâyăt ngăqtăvàăcàiăđ tăcâyăt ngăqt.ăK ăđ n, chúngătơiătrìnhăbàyăv ăcâyă nh ăphân,ăcácăcáchăcàiăđ tăcâyănh ăphân.ăCu iăcùng,ăchúngătơiătrìnhăbàyăcâyătìmăki mă nh ăphânănh ălàă m tă ngăd ngăc aăcâyă nh ăphânăđ ăl uătr ăvàătìmă ki măd ăli u m tă cáchăhi uăqu Ch ngă4:ăNóiăv ăki uăd ăli uătr uăt ngăt păh p,ăcácăcáchăđ năgi năđ ăcàiăđ tăt pă h pănh ăcàiăđ tăb ngăvect ăbítăvà b ngădanhăsáchăcóăho căkhơngăcóăth ăt ăPh năchínhă c aăch ngănàyătrìnhăbàyăc uătrúcăd ăli u t ăđi n,ăđóălàăt păh păv iăbaăphépătốnăthêm,ă xóa vàătìmăki măph năt ,ăcùngăv iăcácăc uătrúcăthíchăh păchoănóănh ălàăb ngăb măvàă hàngă uătiên Ch ngă5:ăTrìnhăbàyăki uăd ăli uătr uăt ngăđ ăth ,ăcácăcáchăbi uădi năđ ăth ,ăt călà càiă đ tă đ ă th ă Cácă phépă tă đ ă th ă baoă g mă tă theoă chi uă r ngă vàă tă theoă chi uăsâuăm tăđ ăth c ngăđ cătrìnhăbàyătrongăch ng.ăDoăh năch ăv ăth iăl ngălên l pănênăchúngătơiăkhơngătáchăriêngăraăđ ătrìnhăbàyăđ ăth ăcóăh ng,ăđ ăth ăvơăh ngă nh ngăchúngătơiăs ăphânăbi tănóă ănh ngăch c năthi t.ăCh ngănàyăđ ăc păm tăs ăbàiă toánăth ngăg pătrênăđ ăth ănh ălàăbàiătốnătìmăđ ngăđiăng nănh t,ăbàiătốnătìmăcâyă ph ăt iăthi u.…Trongăch ngătrìnhăđ iăh c,ăLýăthuy tăđ ăth ăđ cănghiênăc uăsâuăh nă trongăcácămơnăh cănh ăTốnăr iăr căvàăLýăthuy tăđ ăth ,ăvìăv yăch ngănàyăch ăgi iă thi uăm tăs ăbàiătoánăđ năgi nănh tăđ ăsinhăviênăv năd ngăcáchăcàiăđ tăđ ăth ăvàăcác phép toánătrênăđ ăth ăđ ăl pătrìnhăgi iăcác tốn Chúngătơiăhyăv ngătàiăli uănàyăđãăđúcăk tă kinhănghi măgi ngăd yă nhi uăn mămônă C uă trúc d ă li uă vàă Gi iă thu tă c aă chúngă M că dùă đãă r tă c ă g ngă trongă qă trìnhă biênăso n,ănh ngăgiáo trình cóăth ăv năcòn nhi uăkhi măkhuy tăvàăh năch ăR tămongă nh năđ căs ăđóngăgópăýăki năqăbáuăc aăsinhăviênăvàăcácăb năđ căđ ăgiáoătrìnhăngàyă m tăhồnăthi năh n CH I T ăBĨIăTOỄNă NGăI: M ă NăCH U NGăTRỊNH Mơ hình hóa tốn ăgi iăm tăbàiătốnătrongăth căt ăb ng máy tính (computer) taăph iăb tăđ uăt ăvi că xácă đ nhă bàiă toán.ă Nhi uă th iă giană vàă côngă s că b ă raă đ ă xácă đ nhă bàiă toánă c nă gi iă quy t,ăt călàăph iătr ăl iărõăràngăcâuăh iă"ph iălàmăgì?"ăsauăđóălàă"làmănh ăth ănào?".ă Thơngăth ng,ăkhiăkh iăđ u,ăh uăh tăcácăbàiătốnălàăkhơngăđ năgi n,ăkhơngărõăràng.ă ăgi măb tăs ăph căt păc aăbàiătốnăth căt ,ătaăph iăhìnhăth căhóaănó,ăngh aălàăphátă bi uăl iăbàiătốnăth căt ăthànhăm tăbàiătốnăhìnhăth căhayăcònăg iălàămơăhìnhătốn.ăCóă th ăcóăr tănhi uăbàiătốnăth căt ăcóăcùngăm tămơăhìnhătốn Víăd ă1: v năđ ătôămàuăb năđ ăth ăgi i: Gi ă s ă taă c nă ph iă tôămàuă choă cácă n cătrênă b nă đ ă th ă gi i (hình I.1).ă Trongă đóă m iăn căđ cătơăm tămàuăvàăhaiăn călángăgi ng (có biênăgi i chung)ăthìăph iăđ că tơăb ngăhaiămàuăkhácănhau.ăHãyătìmăm tăph ngăánătơămàuăcácăn cătrênăb năđ ăsao choăs ămàuăs ăd ngălàăítănh t Hình I.1: B năđ ăth ăgi i Mơăhìnhăhóaăbàiătốnănàyăcóăth ăhi uălà: tìmăcáchăbi uădi năbàiătốnăm tăcáchătr uă t ngă h nă đ ă g tă b ă cácă chiă ti tă khôngă c nă thi t.ă Víă d ă taă ch ă c nă ghiă l iă t tă c ă cácă n cătrênăb năđ ăvàăm iăquanăh ă“lángăgi ng”ăgi aăhaiăn c,ăt călàăch ăc năbi tăn că nàoăv iăn cănàoăcóăbiênăgi iăchung.ăM tăcáchămơăhìnhăhóaălà:ăv ăm iăn cănh ăm tă m;ă n uă haiă n căcóă chungă biênă gi iătaă s ă v ă m tăđ ngăn iă haiă mă t ngă ng.ă V yăb năđ ăth ăgi iăvàăm iăquanăh ălángăgi ngăgi aăcácăn căđãăđ căbi uădi năb ngă m tă đ ă th (graph):ă m iăđ nhă làă m tă n c,ăhaiă n căcóă biênă gi iăchungă thìăhaiă mă t ngă ngăs ăđ iăv iănhauăb iăm tă đo năth ng hay cong tùy thích,ăg iălàăcung hayăc nhăc aăđ ăth Ch ngăh n,ăm tăph năc aăb năđ ăth ăgi iăđ căchoătrongăhìnhăI.2ă cóăth ămơăhìnhăhóaăb ngăm tăđ ăth ănh ătrongăhìnhăI.3 HìnhăI.2:ăM tăph năc aăb năđ ăth ăgi i HìnhăI.3:ăMinhăh aăvi cămơăhìnhăhóaăchoăph năb năđ ăth ăgi iătrongăhìnhăI.2 Bài tốn “Tơămàuăchoăb năđ ăth ăgi i” tr ăthành:  Tìmăcáchătơămàuăchoăt tăc ăcácăđ nhăđ ăth ăsao cho haiăđ nhăcóăc nhăn iănhau thìăph iăđ cătơăb ngăhaiămàuăkhácănhau;  S ămàuăđ căs ăd ngălàăítănh t Rõăràng,ăgi ăđây bàiătốnătơămàuăđ tăraăbanăđ uăđãăcóăv ă“tốnăh c”ăh năvàănóăxácă đ nhăc ăth ăh năv năđ ă“ph iălàmăgì?”.ăVi călàmăsaoăđ ăgi iăđ căbàiătốnănày,ăt călàă “làmănh ăth ănào?”ăcònăc năph iăđ căti păt cătháoăg Víăd ă2:ă ènăgiaoăthơng Choăm tăngãăn mănh ăhình I.4,ătrongăđóăCăvàăEălàăcácăđ ngăm tăchi uătheoăchi uă m iătên,ăcácăđ ngăkhácălàăhaiăchi u.ăHãyăthi tăk ăm tăb ngăđènăhi uăđi uăkhi năgiaoă thôngăt iăngãăn mănàyăm tăcáchăh pălý,ăngh aălà:ăphânăchiaăcácăl iăđiăt iăngãăn mănàyă thànhăcácănhóm,ăm iănhómăg m cácăl iăđiăcóăth ăcùngăđiăđ ngăth iănh ngăkhôngăx yă raătaiăn năgiaoăthôngă(cácăh ngăđiăkhôngăc tănhau),ăvàăs ăl ngănhómălàăítănh tăcóăth ă đ c.ă Taăcóăth ăxemăđ uăvàoă(input)ăc aăbàiătốnălàăt tăc ăcácăl iăđiăt iăngãăn mănày,ăđ uă raă(output)ăc aăbàiătốnălàăcácănhómăl iăđiăcóăth ăđiăđ ngăth iămàăkhơngăx yăraătaiăn nă giao thơng M iănhómăs ăt ngă ngăv iăm tăphaăđi uăkhi năc aăđènăhi u Vì v y, ta ph iătìmăki măl iăgi iăv iăs ănhómălàăítănh tăđ ăgiaoăthơngăkhơngăb ăt căngh năvìăph iă ch ăđ iăqălâu.ă HìnhăI.4:ăVíăd ăm tăngãăn m T ngăt ănh ătrongăvíăd ă1,ătr căh tătaătìmăcáchămơăhìnhăhóaăbàiătốn,ăt călàătìmă cáchătr uăt ngăhóaăđ ăg tăb ăcácăchiăti tăkhơngăc năthi t.ă ăgi iăbàiătốnăv aăđ tăra,ă ítănh tătaăph iăbi tă ăngãăn măcóăbaoănhiêuăl iăđi,ăl iăđiănàoăv iăl iăđiănàoăcóăh ngă giaoăthơngăkhơngăc tănhau,ăl iăđiănàoăv iăl iăđiănàoăcóăh ngăgiaoăthơngăc tănhau.ă Nh năth yăr ngăt iăngãăn mănàyăcóă13ăl iăđi:ăAB,ăAC,ăAD,ăBA,ăBC,ăBD,ăDA,ăDB,ă DC, EA, EB, EC, ED ăcóăth ăgi iăđ căbàiătốnătaăph iătìmăm tăcáchănàoăđóăđ ăth ă hi năm iăliênăquanăgi aăcácăl iăđiănày.ăL iănàoăv iăl iănàoăkhôngăth ăđiăđ ngăth i,ăl iă nàoăvàăl iănàoăcóăth ăđiăđ ngăth i.ăVíăd ăc păABăvàăECăcóăth ăđiăđ ngăth i,ănh ngăADă vàăEBăthìăkhơng,ăvìăcácăh ngăgiaoăthơngăc tănhau.ă ăđâyătaăs ădùngăm tăs ăđ ătr că quanănh ăsau:ătênăc aă13ăl iăđiăđ căvi tălênăm tăph ng,ăhaiăl iăđiănàoăn uăđiăđ ngăth iă s ăx yăraăđ ngănhauă(t călàăhaiăh ngăđiăc tăquaănhau)ătaăn iăl iăb ngăm tăđo năth ng,ă ho că cong,ă ho că ngo nă ngoă tùy thích.ă Taă s ă cóă m tă s ă đ ă nh hình I.5.ă Nh ă v y,ă trênăs ăđ ănày,ăhaiăl iăđiăcóăc nhăn iăl iăv iănhauălàăhaiăl iăđiăkhôngăth ăchoăđiăđ ngă th i.ă V iăcáchăbi uădi nănh ăv yătaăđãăcóăm tăđ ăth ,ăt călàătaăđãămơăhìnhăhốăbàiătốnă giaoăthơngă ătrênătheoămơăhìnhătốnălàăđ ăth ;ătrongăđóăm i l iăđiătr ăthànhăm tăđ nhă c aăđ ăth ,ăhaiăl iăđiăkhôngăth ăcùngăđiăđ ngăth iăđ iănhauăb ngăm tăđo n đ c g iălàăc nhăc aăđ ăth ăBâyăgi ătaăph iăxácăđ nhăcácănhóm,ăv iăs ănhómăítănh t M iă  VERTEX(i)ătr ăv ăđ nhăcóăch ăs ăi.ăCóăth ăxemăVERTEX(v,i)ănh ălàăm tăhàmăđ ă đ nhăv ăđ nhăth ăiăđ ăth căhi năm tăthaoătácănàoăđóătrênăđ nhănày.ă III BI UăDI Nă ăTH M tăs ăc uătrúcăd ăli uăcóăth ădùngăđ ăbi uădi năđ ăth ăVi căch năc uătrúcăd ăli uănàoă tùy thu căvàoăcácăphépătoánătrênăcácăcungăvàăđ nhăc aăđ ăth ăHaiăc uătrúcăth ngăg pă làăbi uădi năđ ăth ăb ngămaătr năk ă(adjacencyămatrix)ăvàăbi uădi năđ ăth ăb ngădanhăsáchă cácăđ nhăk ă(adjacencyălist) Bi uădi năđ ăth ăb ngămaătr năk Taădùngăm tăm ngăhaiăchi u,ăch ngăh năm ỉỂ a,ăki uăbooleanăđ ăbi uădi năcácăđ nhă k ă N u đ ă th ă cóă nă đ nhă thìă taă dùngă m ngă a cóă kíchă th că nxn.ă Gi ă s ă cácă đ nhă đ că đánhăs ă1 n a[i][j]ă=ătrue,ăn uăcóăcung n iăgi aăđ nhăth ăiăvàăđ nhăth ăj,ăng căl iăthìă a[i][j]ă=ăfalse.ăRõăràng,ăn uăG làăđ ăth ăvơăh ngăthìămaătr năk ăs ălàămaătr năđ iăx ng.ă Ch ngăh năđ ăth ăV.1băcóăbi uădi nămaătr năk ănh ăsau: j i true true true False true true true True true true true True false true true True Taăc ngăcóăth ăbi uădi nătrueălàă1 false Víăd ,ăđ ăth ăhìnhăV.1aăcóăbi uădi nă maătr năk ănh ăsau: j 1 1 1 1 0 i V iăcáchăbi uădi năđ ăth ăb ngămaătr năk ănh ătrênăchúngătaăcóăth ăđ nhăngh aăch ăs ă c aăđ nhălàăs ănguyênăch ăđ nhăđóă(theoăcáchăđánhăs ăcácăđ nh)ăvàătaăcàiăđ tăcácăphépătoánă FIRST,ăNEXTăvàăVERTEXănh ăsau: const Null=0; 116 C uătrúcăd ăli u Cể ỉỂ V: ỏể constăn=ă…;ă//s ăđ nhăc aăđ ăth ă int a[n][n]; //m ngăbi uădi nămaătr năk int FIRST(int v) { //tr ăraăch ăs ăc aăđ nhăđ uătiênăk ăv iăv int i; for (i=1; i

Ngày đăng: 20/04/2019, 06:04

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan