Bài tập lớn môn Cấu trúc dữ liệu và giải thuật - Đề tài 1: Cài đặt công cụ kiểm tra chính tả spell checker

BÀI TP LN MÔN CU TRÚC DLIU VÀ GII THUT  
ĐỀ TÀI 1: CÀI ĐẶT CÔNG CKIM TRA CHÍNH TẢ  
SPELL CHECKER  
1. Sơ lược bài toán  
Kim tra li chính tlà mt qui trình kim tra mt tđúng chính thay không  
da trên mt từ đin có sn. Đây là mt qui trinh được sdng trong nhiu ng dng  
như các phn mm son tho văn bn hay là các từ đin đin t.  
Vic cài đặt mt chương trình kim tra li chính tcơ bn thì chda thun túy trên  
vic kim tra trong mt từ đin được xây dng sn trên mt cu trúc dliu nào đó.  
Tuy nhiên có nhng chương trình còn thc hin mt thao tác là nếu như từ đưa vào  
không đúng chính tthì sẽ đưa ra mt scác từ đúng chính t, gi ý để người dùng  
có thnhanh chóng sa li li ca mình. Vic làm này đòi hi thêm mt scác thao  
tác kim tra.  
2. Yêu cu  
Yêu cu cơ bn ca bài tp này là la chn mt cu trúc dliu thích hp để  
cài đặt mt từ đin lưu trmt slượng ln các t. Khai báo và cài đặt các  
thut toán cho phép thêm mt tmi vào từ đin, xóa mt tcó sn trong từ  
đin.  
Cài đặt mt chương trình cho phép sdng mt từ đin có sn được lưu trữ  
trong cu trúc va xây dng và thc hin công vic kim tra xem mt tbt  
kỳ đưa vào có đúng chính thay không.  
Tìm hiu các gii thut để thc hin vic đưa ra mt stgi ý sa li chính  
tvà cài đặt gii thut đó.  
3. Chú ý  
Ngôn nglp trình : Tùy chn, ưu tiên sdng Java hoc C++  
Sinh viên cn phi viết các chương trình để kim thkết quhot đng  
ca các thao tác đã được cài đặt.  
SInh viên nên cung cp mt giao din để người dung có thtnhp dữ  
liu đầu vào và kim thcác thao tác đã được cài đặt  
Cu trúc dliu và Gii thut – TTM & KTMT K51 – Khoa CNTT – ĐHBKHN  
BÀI TP LN MÔN CU TRÚC DLIU VÀ GII THUT  
ĐỀ TÀI 2: CÁC GII THUT SP XP  
1. Yêu cu:  
Trong chương trình môn hc Cu trúc dliu và gii thut, chúng ta có xem xét mt  
scác gii thut khác nhau để thc hin vic sp xếp mt dãy các stheo chiu tăng  
dn hay gim dn.  
Hãy tìm hiu phương pháp sp xếp kiu phân đon , sp xếp kiu vun đng , sp xếp  
kiu hòa nhp. So sánh các phương pháp sp xếp trên.  
Cài đặt ít nht 2 trong scác phương pháp sp xếp đó, thiết lp giao din đồ ha để  
minh ha các phương pháp sp xếp.  
Đưa ra mt qui trình kim thử để có thể đánh giá được các gii thut đã được cài đặt  
bng phương pháp thc nghim  
Khi cài đặt các phương pháp, chú ý đến vic cho phép hin thrõ tng bước thc hin  
các gii thut để thy được đặc trưng ca tng gii thut.  
2. Chú ý  
Ngôn nglp trình : Tùy chn  
Sinh viên cn phi viết các chương trình để kim thkết quhot đng  
ca các thao tác đã được cài đặt.  
SInh viên nên cung cp mt giao din để người dùng có thtnhp dữ  
liu đầu vào và kim thcác thao tác đã được cài đặt  
Cu trúc dliu và Gii thut – TTM & KTMT K51 – Khoa CNTT – ĐHBKHN  
BÀI TP LN MÔN CU TRÚC DLIU VÀ GII THUT  
ĐỀ TÀI 3: CU TRÚC ĐỒ THVÀ BÀI TOÁN TÌM ĐƯỜNG ĐI  
NGN NHT  
1. Sơ lược bài toán  
Hãy xem xét mt bài toán thc tế vvic chuyn các gói dliu trên mt mng  
máy tính. Mt mng máy tính bao gm nhiu các router được ni vi nhau thông qua  
các dây cáp. Mt router có thlà ngun, là đích hoc là mt trm trung chuyn các  
gói dliu trên mng. Mt mng như vy có thể được hình dung như là mt đồ thị  
vi các router là các đỉnh trong đồ thvà các đường ni gia các router đóng vai trò  
như là nhng cung ni các đỉnh trong đồ th. Mt mng máy tính tuân ththeo giao  
thc OPSF tc là sdng đường đi ngn nht được xác định sdng gii thut  
Dijkstra.  
Trong phm vi ca bài tp ln này, hãy hình dung mng là mt đồ thtrng s, vô  
hướng. Các cung ca đồ thsẽ được gn mt trng scoi như là thi gian để chuyn  
mt gói dliu bt kgia hai router được biu din bng hai đỉnh đầu ca cung.  
2. Yêu cu : Các yêu cu ca bài tp ln này như sau  
Khai báo và cài đặt cu trúc dliu ĐỒ THcho phép to lp và cp nht mt  
đồ thtrng svô hướng. Mi đỉnh ca đồ thị được đặc trưng bi mt cái tên  
là mt xâu ký tcha các chcái hoc chs. Mi cung ca đồ thị được xác  
lp bng mt cp đỉnh và mt trng slà sthc.  
Cài đặt các thao tác cơ bn trên đồ thnhư sau  
o Khi to mt đồ thban đầu rng  
o InsertEdge(Vertex s, Vertex d, float weight) : bsung mt cung có  
trng sw gia hai đỉnh s, d  
o InsertVertex(name) : thêm mt đỉnh mi vào đồ thị  
o GetWeight(Vertex s, Vertex d): ly ra trng sca mt cnh  
o ShortestPath (Vertex s, Vertex d) : Tìm đường đi ngn nht ts đến d  
trong ngcnh hin ti ca đồ th(cài đặt gii thut Dijkstra)  
o Print: hin thhin trng ca đồ thị  
Để sdng cho ng dng tìm đường truyn trong mng, cài đặt các thao  
tác sau:  
o EdgeDown(Vertex s, Vertex d) : đánh du mt cnh nào đó đang được  
sdng, không dùng được  
o EdgeUp(Vertex s, Vertex d) Gii phóng vic sdng mt cnh  
o VertexDown(name) : Đánh du mt đỉnh đang được sdng  
o VertexUp(name) : Gii phóng vic sdng mt đỉnh, đỉnh này trnên  
có thdùng được  
3. Chú ý  
Ngôn nglp trình : Tùy chn, ưu tiên sdng Java hoc C++  
Sinh viên cn phi viết các chương trình để kim thkết quhot đng  
ca các thao tác đã được cài đặt.  
SInh viên nên cung cp mt giao din để người dung có thtnhp dữ  
liu đầu vào và kim thcác thao tác đã được cài đặt  
Cu trúc dliu và Gii thut – TTM & KTMT K51 – Khoa CNTT – ĐHBKHN  
BÀI TP LN MÔN CU TRÚC DLIU VÀ GII THUT  
ĐỀ TÀI 4: CU TRÚC ĐỒ THVÀ BÀI TOÁN TÌM CÂY KHUNG  
CC TIU  
1. Sơ lược bài toán  
Bài toán tìm cây khung cc tiu trên cu trúc đồ thlà mt bài toán được áp dng  
nhiu trong thc tế.  
Trong ngcnh ca cu trúc đồ th, mt cây T là mt đồ thtrong đó bt khai đỉnh  
trong đồ thnày đều được ni vi nhau bng mt đường đi duy nht.  
Cho mt đồ thG, mt cây khung T1 trong G là mt phn con ca G mà nó là mt  
cây và nó cha tt ccác đỉnh trong đồ thG. Mt đồ thcó thcó nhiu cây khung.  
Nếu đồ thị đã cho ban đầu là mt đồ thtrng sthì chúng ta có thtính trng sca  
mt cây khung bng tng tt ccác trng sca các cnh trong cây.  
Mt cây khung có trng snhnht được gi là cây khung cc tiu ca đồ thị  
2. Yêu cu : Các yêu cu ca bài tp ln này như sau  
Khai báo và cài đặt cu trúc dliu ĐỒ THcho phép to lp và cp nht mt  
đồ thtrng svô hướng. Mi đỉnh ca đồ thị được đặc trưng stnhiên có  
giá trduy nht trong đồ th. Mi cung ca đồ thị được xác lp bng mt cp  
đỉnh và mt trng slà sthc.  
Cài đặt các thao tác cơ bn trên đồ thnhư sau  
o Khi to mt đồ thban đầu rng  
o InsertEdge(Vertex s, Vertex d, float weight) : bsung mt cung có  
trng sw gia hai đỉnh s, d  
o InsertVertex(name) : thêm mt đỉnh mi vào đồ thị  
o GetWeight(Vertex s, Vertex d): ly ra trng sca mt cnh  
o Print: hin thhin trng ca đồ thị  
Tìm hiu vhai thut toán Kruskal và Prim để tìm mt cây khung cc tiu  
trong mt đồ thtrng scho trước, so sánh hai gii thut này vmt hiu  
năng  
Cài đặt hai gii thut đã tìm hiu  
Xây dng mt chương trình nhn đầu vào là mt file text cha thông tin về  
mt đồ thcho trước, to lp đồ thvà chrõ tng bước hot động ca gii  
thut tìm cây khung cc tiu đã cài đặt trên đồ thto lp được  
3. Chú ý  
Ngôn nglp trình : Tùy chn, ưu tiên sdng Java hoc C++  
Sinh viên cn phi viết các chương trình để kim thkết quhot đng  
ca các thao tác đã được cài đặt.  
SInh viên nên cung cp mt giao din để người dung có thtnhp dữ  
liu đầu vào và kim thcác thao tác đã được cài đặt  
Cu trúc dliu và Gii thut – TTM & KTMT K51 – Khoa CNTT – ĐHBKHN  
BÀI TP LN MÔN CU TRÚC DLIU VÀ GII THUT  
ĐỀ TÀI 5: CU TRÚC CÂY NHPHÂN TÌM KIM CÂN BNG  
1. Sơ lược bài toán  
Cây nhphân tìm kiếm là mt cu trúc đặc bit, được sdng trong bài  
toán tìm kiếm. Mô tvcây nhphân tìm kiếm có ththam kho trong  
sách giáo trình ca môn hc. Cây AVL là mt dng đặc bit ca cây nhị  
phân tìm kiếm , mô tvcây AVL cũng có trong sách giáo trình  
2. Yêu cu  
Hãy khai báo mt lp đối tượng dng cây nhphân tìm kiếm có tên BST trong đó  
chp nhn các nút ca cây có thnhn giá trlà các snguyên sdng kiu lưu  
trmóc ni ca cây. Cài đặt các thao tác sau trên cây nhphân tìm kiêm:  
a. Create(): Khi to mt cây rng, thtc này strra mt con trtrti  
gc ca cây, con trban đầu scó giá trkhông xác định  
b. Contain(T,x) : Thc hin vic tìm kiếm , xác định xem trong cây đã có nút  
nào có giá trx cho trước hay không? Nếu có, hãy chra chsca nút  
cha giá trị đó  
c. Insert(T, x) : Bsung mt nút mi có giá trlà x cho trước vào mt cây T.  
Trong quá trình bsung có thc hin tìm kiếm, nếu giá trx đã có trong  
cây, không cn tiến hành bsung  
d. Delete(T,x): Loi bmt nút có giá trx cho trước ra khi cây T  
e. Print(T) : Thtc này cho phép hin thmt cây T lên màn hình  
f. IsAVL(T) : Kim tra xem mt cây T có phi là mt cây AVL không?  
Phn mrng: Mrng thtc Insert để có thể đáp ng được yêu cu như đối  
vi cây AVL (thc hin các thao tác quay để đảm bo tính cân bng ca cây)  
3. Chú ý  
Ngôn nglp trình : Tùy chn, ưu tiên sC, Java hoc C++  
Sinh viên cn phi viết các chương trình để kim thkết quhot đng  
ca các thao tác đã được cài đặt.  
SInh viên nên cung cp mt giao din để người dung có thtnhp dữ  
liu đầu vào và kim thcác thao tác đã được cài đặt  
Cu trúc dliu và Gii thut – TTM & KTMT K51 – Khoa CNTT – ĐHBKHN  
BÀI TP LN MÔN CU TRÚC DLIU VÀ GII THUT  
ĐỀ TÀI 6: Các gii thut cho bài toán đối sánh mu  
1. Sơ lược bài toán  
Đối sánh mu ( Pattern matching) là mt bài toán tìm sxut hin ca mt xâu ký  
tmu (pattern) trong mt văn bn. Bài toán này có thể được áp dng trong mt  
slĩnh vc như tìm kiếm thông tin, xlý văn bn , các chương trình son tho  
văn bn.  
2. Yêu cu  
Tìm hiu 3 gii thut cho bài toán đối sánh mu  
-
-
-
Gii thut Naïve  
Gii thut Knutt-Morris-Pratt (KMP)  
Gii thut Boyer-Moore (BM)  
So sánh 3 gii thut  
Cài đặt chương trình demo ít nht 2 trong s3 gii thut trên,  
Chương trình demo cn cho phép người sdng nhp dliu đầu vào mt cách  
linh hot và cho người sdng nhìn thy tng bước xlý ca gii thut trong quá  
trình xác định vtrí xut hin ca mu trong văn bn đầu vào.  
Cu trúc dliu và Gii thut – TTM & KTMT K51 – Khoa CNTT – ĐHBKHN  
pdf 6 trang baolam 26/04/2022 6900
Bạn đang xem tài liệu "Bài tập lớn môn Cấu trúc dữ liệu và giải thuật - Đề tài 1: Cài đặt công cụ kiểm tra chính tả spell checker", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_tap_lon_mon_cau_truc_du_lieu_va_giai_thuat_de_tai_1_cai.pdf