LÝ THUYẾT VỀ CẤU TRÚC DỮ LIỆU
Số trang: 50
Loại file: doc
Dung lượng: 442.00 KB
Lượt xem: 20
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Một trong những phần quan trọng của quá trình phân tích thiết kế là chia vấn đề thành những vấn đềnhỏ dễ hiểu và chi tiết hơn. Phương pháp phân tích thiết kế hướng đối tượng dựa trên quan điểm này. Vìvậy ta cần định ra các lớp sao cho mỗi lớp sau này sẽ cung cấp các đối tượng có các hành vi đúng nhưchúng ta mong đợi. Lúc đó, việc lập trình giải quyết các bài toán lớn của chúng ta chỉ sẽ được tập trungvào những giải thuật lớn. Các đối tượng sẽ được gọi để thực...
Nội dung trích xuất từ tài liệu:
LÝ THUYẾT VỀ CẤU TRÚC DỮ LIỆU TRUNG TÂM ĐÀO TẠO MÔNHỌC CẤUTRÚCDỮLIỆU BÀI1:GIỚITHIỆU1. Vềphươngphápphântíchthiếtkếhướngđốitượng Mộttrongnhữngphầnquantrọngcủaquátrìnhphântíchthiếtkếlàchiavấnđềthànhnhữngvấnđề nhỏdễhiểuvàchitiếthơn.Phươngphápphântíchthiếtkếhướngđốitượngdựatrênquanđiểmnày.Vì vậytacầnđịnhracáclớpsaochomỗilớpsaunàysẽcungcấpcácđốitượngcócáchànhviđúngnhư chúngtamongđợi.Lúcđó,việclậptrìnhgiảiquyếtcácbàitoánlớncủachúngtachỉsẽđượctậptrung vàonhữnggiảithuậtlớn.Cácđốitượngsẽđượcgọiđểthựchiệncáchànhvicủamìnhvàonhữnglúccần thiết.2. GiớithiệumônhọcCấutrúcdữliệu(CTDL)vàgiảithuật CáclớpCTDLphảithựchiệnmộtsốchứcnăngthôngquacáchànhvicủađốitượngcủanó.Vàmột nhiệmvụquantrọngkháccủalớpCTDLlànắmgiữdữliệusaochocóthểđápứngmỗikhiđượcchương trìnhyêucầutrảvềmộtdữliệucụthểnàođómàchươngtrìnhcầnđến.Nhữngthaotáccơbảnđốivới mộtCTDLthườnglàthêmdữliệumới,xoábỏdữliệuđãcó,tìmkiếmvàtruyxuất.CónhiềuCTDLkhác nhauvềcácthaotácbổsung.Chínhvìvậymàkhithiếtkếnhữnggiảithuậtđểgiảiquyếtcácbàitoánlớn ngườitasẽlựachọnCTDLnàolàthíchhợpnhất. Thếnàolàgiảithuật?Chúngtacầnmộtcấutrúcchươngtrìnhđểxácđịnhtacầnlàmnhữngcông việcgì,việcnàolàmtrước,việcnàolàmsau,việcgìchỉlàmtrongtìnhhuốngđặcbiệtnàođó,việcgì cầnlàmlặplạinhiềulần3. CáchtiếpcậntrongquátrìnhtìmhiểucáclớpCTDL: a) Cácbướctrongquátrìnhphântíchthiếtkếhướngđốitượng: Địnhracáclớpvớicácchứcnăngmàchúngtamongđợi Lựachọncácgiảithuậtchính.Đólàtạoramộtmôitrườngđểcácđốitượngcủalớpnêutrên tươngtáclẫnnhau Hiệnthựcchomỗilớp b) QuátrìnhxâydựngcáclớpCTDL: Xuấtpháttừmộtmôhìnhtoánhọchaydựavàomộtnhucầuthựctếnàođó,chúngtađịnh racácchứcnăngcủalớpCTDLchúngtacầncó ĐặctảđầyđủcáchthứcgiaotiếpgiữalớpCTDLđangđượcthiếtkếvớimôitrường ngoài(cácchươngtrìnhsẽsửdụngnó).Phầngiaotiếpnàyđượcmôtảthôngquađịnhnghĩa cácphươngthứccủalớp.MỗiphươngthứclàmộthànhvicủađốitượngCTDLsaunày, phầnđặctảgồmcácyếutốsau: +Kiểukếtquảmàphươngthứctrảvề. +Cácthôngsốvào/ra +Cácđiềukiệnbanđầutrướckhiphươngthứcđượcgọi(precondition) +Cáckếtquảmàphươngthứclàmđược(postcondition) +Cáclớp,hàmcósửdụngtrongphươngthức(uses) Biên soạn: Nguyễn Thanh Hùng 1 TRUNG TÂM ĐÀO TẠO Thôngquaphầnđặctảnày,cácCTDLhoàntoàncóthểđượcsửdụngtrongviệcxâydựng nênnhữnggiảithuậtlớntrongcácbàitoánlớn.Phầnđặctảnàycóthểxemnhưnhữngcam kếtmàkhôngbaogiờđượcquyềnthayđổi.CónhưvậycácchươngtrìnhcósửdụngCTDL mớikhôngbịthayđổimộtkhisửdụngchúng. TìmhiểucácphươngánhiệnthựccholớpCTDL. Chọnphươngánvàhiệnthựclớp.Trongbướcnàybaogồmcảviệckiểmtrađểhoàntâtlớp CTDLnhưlàmộtlớpđểbổsungvàothưviện,ngườilậptrìnhcóthểsửdụngchúngtrong nhiềuchươngtrìnhsaunày.4. Mộtsốđịnhnghĩacơbản: a. Địnhnghĩakiểudữliệu:Mộtkiểudữliệulàmộttậphợp,cácphântửcủatậphợpnàyđượcgọilà cáctrịcủakiểudữliệu. b. Kiểunguyêntốvàcáckiểucócấutrúc:Cáckiểunhưint,float,charđượcgọilàcáckiểunguyên tố(atomic),chúngtaxemcáctrịcủachúngchỉlàmộtthựcthểđơn,chúngtakhôngcómongmuốn chianhỏchúng.Ngoàira,máytínhcòncungcấpcáccôngcụchophépchúngtaxâdựngcáckiểu dữliệumớigọilàcáckiểucócấutrúc(structuredtypes) c. Chuỗinốitiếpvàdanhsách:Mộtchuỗinốitiếp(sequence)kíchthước0làmộtchuỗirỗng.Một chuỗinốitiếpkíchthướcn>=1cácphầntửcủatậpTlàmộtcặpcóthứtự(Sn1,t).Trongđó,Sn1là mộtchuỗinốitiếpkíchthướcn1cácphầntửcủatậpTvàtlàmộtphầntửcủatậpT.Vậymộtdanh sách(list)cácphầntửthuộckiểuTlàmộtchuỗinốitiếphữuhạncácphầntửkiểuT d. Cáckiểudữliệutrừutượng:CTDL(dataStructure)làmộtsựkếthợpcủacáckiểudữliệunguyên tố,và/hoặccáckiểudữliệucócấutr ...
Nội dung trích xuất từ tài liệu:
LÝ THUYẾT VỀ CẤU TRÚC DỮ LIỆU TRUNG TÂM ĐÀO TẠO MÔNHỌC CẤUTRÚCDỮLIỆU BÀI1:GIỚITHIỆU1. Vềphươngphápphântíchthiếtkếhướngđốitượng Mộttrongnhữngphầnquantrọngcủaquátrìnhphântíchthiếtkếlàchiavấnđềthànhnhữngvấnđề nhỏdễhiểuvàchitiếthơn.Phươngphápphântíchthiếtkếhướngđốitượngdựatrênquanđiểmnày.Vì vậytacầnđịnhracáclớpsaochomỗilớpsaunàysẽcungcấpcácđốitượngcócáchànhviđúngnhư chúngtamongđợi.Lúcđó,việclậptrìnhgiảiquyếtcácbàitoánlớncủachúngtachỉsẽđượctậptrung vàonhữnggiảithuậtlớn.Cácđốitượngsẽđượcgọiđểthựchiệncáchànhvicủamìnhvàonhữnglúccần thiết.2. GiớithiệumônhọcCấutrúcdữliệu(CTDL)vàgiảithuật CáclớpCTDLphảithựchiệnmộtsốchứcnăngthôngquacáchànhvicủađốitượngcủanó.Vàmột nhiệmvụquantrọngkháccủalớpCTDLlànắmgiữdữliệusaochocóthểđápứngmỗikhiđượcchương trìnhyêucầutrảvềmộtdữliệucụthểnàođómàchươngtrìnhcầnđến.Nhữngthaotáccơbảnđốivới mộtCTDLthườnglàthêmdữliệumới,xoábỏdữliệuđãcó,tìmkiếmvàtruyxuất.CónhiềuCTDLkhác nhauvềcácthaotácbổsung.Chínhvìvậymàkhithiếtkếnhữnggiảithuậtđểgiảiquyếtcácbàitoánlớn ngườitasẽlựachọnCTDLnàolàthíchhợpnhất. Thếnàolàgiảithuật?Chúngtacầnmộtcấutrúcchươngtrìnhđểxácđịnhtacầnlàmnhữngcông việcgì,việcnàolàmtrước,việcnàolàmsau,việcgìchỉlàmtrongtìnhhuốngđặcbiệtnàođó,việcgì cầnlàmlặplạinhiềulần3. CáchtiếpcậntrongquátrìnhtìmhiểucáclớpCTDL: a) Cácbướctrongquátrìnhphântíchthiếtkếhướngđốitượng: Địnhracáclớpvớicácchứcnăngmàchúngtamongđợi Lựachọncácgiảithuậtchính.Đólàtạoramộtmôitrườngđểcácđốitượngcủalớpnêutrên tươngtáclẫnnhau Hiệnthựcchomỗilớp b) QuátrìnhxâydựngcáclớpCTDL: Xuấtpháttừmộtmôhìnhtoánhọchaydựavàomộtnhucầuthựctếnàođó,chúngtađịnh racácchứcnăngcủalớpCTDLchúngtacầncó ĐặctảđầyđủcáchthứcgiaotiếpgiữalớpCTDLđangđượcthiếtkếvớimôitrường ngoài(cácchươngtrìnhsẽsửdụngnó).Phầngiaotiếpnàyđượcmôtảthôngquađịnhnghĩa cácphươngthứccủalớp.MỗiphươngthứclàmộthànhvicủađốitượngCTDLsaunày, phầnđặctảgồmcácyếutốsau: +Kiểukếtquảmàphươngthứctrảvề. +Cácthôngsốvào/ra +Cácđiềukiệnbanđầutrướckhiphươngthứcđượcgọi(precondition) +Cáckếtquảmàphươngthứclàmđược(postcondition) +Cáclớp,hàmcósửdụngtrongphươngthức(uses) Biên soạn: Nguyễn Thanh Hùng 1 TRUNG TÂM ĐÀO TẠO Thôngquaphầnđặctảnày,cácCTDLhoàntoàncóthểđượcsửdụngtrongviệcxâydựng nênnhữnggiảithuậtlớntrongcácbàitoánlớn.Phầnđặctảnàycóthểxemnhưnhữngcam kếtmàkhôngbaogiờđượcquyềnthayđổi.CónhưvậycácchươngtrìnhcósửdụngCTDL mớikhôngbịthayđổimộtkhisửdụngchúng. TìmhiểucácphươngánhiệnthựccholớpCTDL. Chọnphươngánvàhiệnthựclớp.Trongbướcnàybaogồmcảviệckiểmtrađểhoàntâtlớp CTDLnhưlàmộtlớpđểbổsungvàothưviện,ngườilậptrìnhcóthểsửdụngchúngtrong nhiềuchươngtrìnhsaunày.4. Mộtsốđịnhnghĩacơbản: a. Địnhnghĩakiểudữliệu:Mộtkiểudữliệulàmộttậphợp,cácphântửcủatậphợpnàyđượcgọilà cáctrịcủakiểudữliệu. b. Kiểunguyêntốvàcáckiểucócấutrúc:Cáckiểunhưint,float,charđượcgọilàcáckiểunguyên tố(atomic),chúngtaxemcáctrịcủachúngchỉlàmộtthựcthểđơn,chúngtakhôngcómongmuốn chianhỏchúng.Ngoàira,máytínhcòncungcấpcáccôngcụchophépchúngtaxâdựngcáckiểu dữliệumớigọilàcáckiểucócấutrúc(structuredtypes) c. Chuỗinốitiếpvàdanhsách:Mộtchuỗinốitiếp(sequence)kíchthước0làmộtchuỗirỗng.Một chuỗinốitiếpkíchthướcn>=1cácphầntửcủatậpTlàmộtcặpcóthứtự(Sn1,t).Trongđó,Sn1là mộtchuỗinốitiếpkíchthướcn1cácphầntửcủatậpTvàtlàmộtphầntửcủatậpT.Vậymộtdanh sách(list)cácphầntửthuộckiểuTlàmộtchuỗinốitiếphữuhạncácphầntửkiểuT d. Cáckiểudữliệutrừutượng:CTDL(dataStructure)làmộtsựkếthợpcủacáckiểudữliệunguyên tố,và/hoặccáckiểudữliệucócấutr ...
Tìm kiếm theo từ khóa liên quan:
cấu trúc dữ liệu thuật toán bài giảng cấu trúc dữ liệu tài liệu cấu trúc dữ liệu giáo trình cấu trúc dữ liệu thuật toán trong cấu trúc dữ liệuGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 318 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 162 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 150 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 143 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 139 0 0 -
57 trang 133 1 0
-
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 124 0 0 -
150 trang 104 0 0
-
Bài giảng Cấu trúc dữ liệu và thuật toán: Chương 3 - Một số mô hình thuật toán
42 trang 74 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 74 0 0