Cấu trúc dữ liệu và giải thuật_ Bài tập lớn
Số trang: 7
Loại file: doc
Dung lượng: 118.50 KB
Lượt xem: 9
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
*ADT (Abstract Data Types) – kiểu dữ liệu trừu tượng bao gồm:Tậpcác giá trị (đối tượng)Tậpcác phép toán có thể thực hiện với tất cả các giá trị nàyCáchbiểu diễn dữ liệu được sử dụng chung cho tất cả các giá trị này*Stack (ngăn xếp): là một kiểu dữ liệu trừu tượng, một dạng đặc biệt của danh sách tuyến tính(dãy gồm 0 hoặc nhiều hơn các phần tử cùng kiểu cho trước) trong đó các đối tượng được nạpvào (push) và lấy ra (pop) chỉ từ một đầu gọi là đỉnh (top) của danh sách....
Nội dung trích xuất từ tài liệu:
Cấu trúc dữ liệu và giải thuật_ Bài tập lớnCấu trúc dữ liệu và giải thuật ADT Stack Bàitậplớn CẤUTRÚCDỮLIỆUVÀGIẢITHUẬT Đềtài:ADTStacks[Ngănxếp] -o0o- Mai Xuân Cường - Nguyễn Trung Dũng A - Hoàng Mạnh Hùng Nguyễn Thị Thu Nga - Vũ Thị Quỳnh Trang - Ngô Anh Tuấn - Nguyễn Tuấn *** I.Địnhnghĩa: *ADT(AbstractDataTypes)–kiểudữliệutrừutượngbaogồm: Tậpcácgiátrị(đốitượng) Tậpcácphéptoáncóthểthựchiệnvớitấtcảcácgiátrịnày Cáchbiểudiễndữliệuđượcsửdụngchungchotấtcảcácgiátrịnày *Stack(ngănxếp):làmộtkiểudữliệutrừutượng,mộtdạngđặcbiệtcủadanhsáchtuyếntính(dãygồm0hoặcnhiềuhơncácphầntửcùngkiểuchotrước)trongđócácđốitượngđượcnạpvào(push)vàlấyra(pop)chỉtừmộtđầugọilàđỉnh(top)củadanhsách. nguyêntắc:vàosauratrước(LIFO–lastinfirstout) Đốitượngcấtgiữ: cácphầntửsố(nguyên,thực),kýtự,xâu(string),mảng(array),bảnghi(record),file... Cácphéptoáncơbản: +pushđẩyphầntửvàongănxếp +poplấyphầntửrakhỏingănxếp +isEmptykiểmtrangănxếprỗng +sizetrảvềsốphầntửcủangănxếp +toptrảvềgiátrịcủaphầntửnằmởđầudanhsáchmàkhônglấynórakhỏingănxếp II.Càiđặt: 1Cáccấutrúcdữliệuđểbiểudiễnvàcàiđặtcácphéptoán: a)Mảng: +nạpcácphầntửtheothứtựtừtráisangphải +cóbiếnlưutrữchỉsốcủaphầntửởđầungănxếpStack 3 5 2 …… 6 7 0 1 2 …. n maxn +trongđó: maxn_sốphầntửtốiđaxincấpphátcủangănxếp n_biếndùngđểlưutrữchỉsốphầntửởđầungănxếp +mộthạnchếcủaviệcsửdụngmảnglàphảikhaibáokíchthướctốiđađểdựphòngnêngâylãngphíbộnhớhoặcphảithôngbáotrànbộnhớ(FullStack)khithựchiệnthaotácpush b)Danhsáchmócnối(contrỏ): 1Cấu trúc dữ liệu và giải thuật ADT Stack +mỗinútbaogồm2thànhphầncơbản: elements đểlưutrữnộidungdữliệucủaphầntử,*nextlàcontrỏđếnnúttiếptheotrongngănxếp +thaotácbốsungvàloạibỏluônlàmviệcởnútđầutiênthôngquaviệcsửdụngmộtcontrỏ*toptrỏđếnnútđầutiêntrongngănxếp +việcsửdụngdanhsáchmócnối(haycontrỏ)cómộtưuđiểmlàkhôngphảikhaibáosốphầntửtốiđacủangănxếpđểdựphòngtừđócóthểtiếtkiệmđượcbộnhớkhôngcầnthiết. 7 54 ……. 93 5 NULL*top elements *next 2Chươngtrìnhminhhọa:file:StackPtr.cpp,STACKARR.cpp III.Ứngdụng: 1Phátbiểubàitoán: *Tínhgiátrịbiểuthứcsốhọc: Biểuthứcsốhọcxuấthiệnrấtnhiềutrongcuộcsốngvàviệctínhtoángiátrịcủacácbiểuthứcđólàđiềutấtyếu,quantrọng.Vídụ: Khisửdụngmáytính(calculator),ngườidùngsẽnhậpcácbiểuthứcsốhọccầntínhthôngquacácphímsốvàphéptoáncósẵn.Nhiệmvụcủamáysẽtínhtoánvàhiểnthịkếtquảchínhxácramànhình. Khisửdụngcácbảngtínhđiệntử(nhưExcel,…)đểlậpcácbảngtínhlương,thốngkêviệcthuchicủadoanhnghiệp…,ngườidùngsẽnhậpcácbiểuthứcsốhọcvàocácôtính.Khiđó,chươngtrìnhsẽcónhiệmvụphântíchvàtínhtoánrồiđưarakếtquảtạiôđó. Haytrongcácngônngữlậptrình(nhưC,PASCAL…),tađãkháquenthuộcvớicáclệnhgán X= //Xlàbiến Khithựchiệnchươngtrình,gặpcáclệnhgán,máytínhcầnphảixácđịnhgiátrịcủacácbiểuthứcsốhọcđóvàgánkếtquảchobiếnX. Vìvậy,việcxâydựngmộtchươngtrìnhtínhtoángiátrịcủacácbiểuthứcsốhọclàcầnthiết. Biểuthứcsốhọclàmộtdãycáctoánhạng(hằng(số),biếnhoặchàm)nốivớinhaubởicácphéptoánsốhọc(nhưcộng,trừ,nhân,chia,lũythừa,cănthức,...).Trongcácbiểuthứccóthểchứacácdấungoặctrònđểxácđịnhthứtựưutiên.Khiđócácphéptoántrongngoặcsẽđượcthựchiệntrướccácphéptoánởngoài. Cácphéptoánsốhọcđượcphânralàm2loại: Cácphéptoánhaingôi(+,,*,/,^,…):mỗiphéptoánđượcđặtgiữacáctoánhạng.Vídụ:2+3,56*12,3^8,… Cácphéptoánmộtngôi(căn,logarit,cáchàmlượnggiác:sin,cos,tg,…):mỗiphéptoánđingaytrướctoánhạng.Vídụ:sin4,ln7,… Hơnnữa,khitínhcácbiểuthứcsốhọc,tacầnphảituântheonhữngquytắcsau: Thứtựưutiên:^*,/+, Quytắckếthợp:chobiếtkhicó2phéptoáncócùngthứtựưu ...
Nội dung trích xuất từ tài liệu:
Cấu trúc dữ liệu và giải thuật_ Bài tập lớnCấu trúc dữ liệu và giải thuật ADT Stack Bàitậplớn CẤUTRÚCDỮLIỆUVÀGIẢITHUẬT Đềtài:ADTStacks[Ngănxếp] -o0o- Mai Xuân Cường - Nguyễn Trung Dũng A - Hoàng Mạnh Hùng Nguyễn Thị Thu Nga - Vũ Thị Quỳnh Trang - Ngô Anh Tuấn - Nguyễn Tuấn *** I.Địnhnghĩa: *ADT(AbstractDataTypes)–kiểudữliệutrừutượngbaogồm: Tậpcácgiátrị(đốitượng) Tậpcácphéptoáncóthểthựchiệnvớitấtcảcácgiátrịnày Cáchbiểudiễndữliệuđượcsửdụngchungchotấtcảcácgiátrịnày *Stack(ngănxếp):làmộtkiểudữliệutrừutượng,mộtdạngđặcbiệtcủadanhsáchtuyếntính(dãygồm0hoặcnhiềuhơncácphầntửcùngkiểuchotrước)trongđócácđốitượngđượcnạpvào(push)vàlấyra(pop)chỉtừmộtđầugọilàđỉnh(top)củadanhsách. nguyêntắc:vàosauratrước(LIFO–lastinfirstout) Đốitượngcấtgiữ: cácphầntửsố(nguyên,thực),kýtự,xâu(string),mảng(array),bảnghi(record),file... Cácphéptoáncơbản: +pushđẩyphầntửvàongănxếp +poplấyphầntửrakhỏingănxếp +isEmptykiểmtrangănxếprỗng +sizetrảvềsốphầntửcủangănxếp +toptrảvềgiátrịcủaphầntửnằmởđầudanhsáchmàkhônglấynórakhỏingănxếp II.Càiđặt: 1Cáccấutrúcdữliệuđểbiểudiễnvàcàiđặtcácphéptoán: a)Mảng: +nạpcácphầntửtheothứtựtừtráisangphải +cóbiếnlưutrữchỉsốcủaphầntửởđầungănxếpStack 3 5 2 …… 6 7 0 1 2 …. n maxn +trongđó: maxn_sốphầntửtốiđaxincấpphátcủangănxếp n_biếndùngđểlưutrữchỉsốphầntửởđầungănxếp +mộthạnchếcủaviệcsửdụngmảnglàphảikhaibáokíchthướctốiđađểdựphòngnêngâylãngphíbộnhớhoặcphảithôngbáotrànbộnhớ(FullStack)khithựchiệnthaotácpush b)Danhsáchmócnối(contrỏ): 1Cấu trúc dữ liệu và giải thuật ADT Stack +mỗinútbaogồm2thànhphầncơbản: elements đểlưutrữnộidungdữliệucủaphầntử,*nextlàcontrỏđếnnúttiếptheotrongngănxếp +thaotácbốsungvàloạibỏluônlàmviệcởnútđầutiênthôngquaviệcsửdụngmộtcontrỏ*toptrỏđếnnútđầutiêntrongngănxếp +việcsửdụngdanhsáchmócnối(haycontrỏ)cómộtưuđiểmlàkhôngphảikhaibáosốphầntửtốiđacủangănxếpđểdựphòngtừđócóthểtiếtkiệmđượcbộnhớkhôngcầnthiết. 7 54 ……. 93 5 NULL*top elements *next 2Chươngtrìnhminhhọa:file:StackPtr.cpp,STACKARR.cpp III.Ứngdụng: 1Phátbiểubàitoán: *Tínhgiátrịbiểuthứcsốhọc: Biểuthứcsốhọcxuấthiệnrấtnhiềutrongcuộcsốngvàviệctínhtoángiátrịcủacácbiểuthứcđólàđiềutấtyếu,quantrọng.Vídụ: Khisửdụngmáytính(calculator),ngườidùngsẽnhậpcácbiểuthứcsốhọccầntínhthôngquacácphímsốvàphéptoáncósẵn.Nhiệmvụcủamáysẽtínhtoánvàhiểnthịkếtquảchínhxácramànhình. Khisửdụngcácbảngtínhđiệntử(nhưExcel,…)đểlậpcácbảngtínhlương,thốngkêviệcthuchicủadoanhnghiệp…,ngườidùngsẽnhậpcácbiểuthứcsốhọcvàocácôtính.Khiđó,chươngtrìnhsẽcónhiệmvụphântíchvàtínhtoánrồiđưarakếtquảtạiôđó. Haytrongcácngônngữlậptrình(nhưC,PASCAL…),tađãkháquenthuộcvớicáclệnhgán X= //Xlàbiến Khithựchiệnchươngtrình,gặpcáclệnhgán,máytínhcầnphảixácđịnhgiátrịcủacácbiểuthứcsốhọcđóvàgánkếtquảchobiếnX. Vìvậy,việcxâydựngmộtchươngtrìnhtínhtoángiátrịcủacácbiểuthứcsốhọclàcầnthiết. Biểuthứcsốhọclàmộtdãycáctoánhạng(hằng(số),biếnhoặchàm)nốivớinhaubởicácphéptoánsốhọc(nhưcộng,trừ,nhân,chia,lũythừa,cănthức,...).Trongcácbiểuthứccóthểchứacácdấungoặctrònđểxácđịnhthứtựưutiên.Khiđócácphéptoántrongngoặcsẽđượcthựchiệntrướccácphéptoánởngoài. Cácphéptoánsốhọcđượcphânralàm2loại: Cácphéptoánhaingôi(+,,*,/,^,…):mỗiphéptoánđượcđặtgiữacáctoánhạng.Vídụ:2+3,56*12,3^8,… Cácphéptoánmộtngôi(căn,logarit,cáchàmlượnggiác:sin,cos,tg,…):mỗiphéptoánđingaytrướctoánhạng.Vídụ:sin4,ln7,… Hơnnữa,khitínhcácbiểuthứcsốhọc,tacầnphảituântheonhữngquytắcsau: Thứtựưutiên:^*,/+, Quytắckếthợp:chobiếtkhicó2phéptoáncócùngthứtựưu ...
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 320 0 0 -
Giáo trình cấu trúc dữ liệu và giải thuât part 2
16 trang 166 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 164 0 0 -
3 trang 162 3 0
-
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Trần Hạnh Nhi
123 trang 156 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 152 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 -
10 trang 138 0 0
-
57 trang 134 1 0