Mời chúng ta cùng xem thêm bài bác tập cấu tạo dữ liệu cùng giải thuật được tổng vừa lòng những bài bác tập thực hành có lợi với cần thiết, giúp chúng ta thêm tư liệu để ôn tập, hệ thống kiến thức và kỹ năng và có tác dụng thật xuất sắc các dạng bài bác tập thực hành về cấu tạo tài liệu và lời giải.


Bạn đang xem: Bài tập cấu trúc dữ liệu và giải thuật có lời giải

*

Khoa Công Nghệ Thông Tin Môn: CTDL và GT Bài thực hành số 1Bài tập 1: Viết chương trình minch hoạ những giải thuật kiếm tìm kiếm và sắp xếp bên trên mảng có size n phầntử nguyên ổn. Cmùi hương trình được mô tả cùng với những trải nghiệm nhỏng sau: Cài đặt hàm search kiếm: o Tìm kiếm tuần tự (đường tính) mang lại mảng bất kỳ o Tìm tìm nhị phân đến mảng tài liệu được sắp tới tăng Cài đặt các hàm thu xếp (tăng) theo pmùi hương pháp: o Chọn trực tiếp o Cyếu thẳng o Nổi bọt bong bóng o Đổi khu vực trực tiếp o Shell Sort o Quiông xã Sort Các hàm thu xếp đề nghị minc hoạ trực quan: tại mỗi bước hoán thù vị a với a Ví dụ: hoán thù vị a<1> = 3 và a<6> = 2Cách 1: dịch rời 3 xuống dưới k chiếc cùng 2 lên ở trên k dòngCách 2: di chuyển 3 qua địa điểm cột của 2 với trở lại Bước 3: dịch chuyển 2 xuống cùng 3 lên đúng địa chỉ cuối cùngTrường hợp thu xếp theo phong cách chèn tương đối khác, sinc viên trường đoản cú tìm hiểu cùng cài đặt minch hoạ mang đến thuậttoán thù bố trí ckém.Lưu ý: từng hàm sẽ có được tmê man số vào là mảng yêu cầu xử lý và form size của mảng, không sử dụng biến hóa toàncục. Trong hàm main gây ra một menu chọn, chất nhận được nhtràn lên một trong những rồi thực hiện chức năng tương xứng, menu có biểu đạt nlỗi sau: o Khởi chế tác mảng tài liệu a, có thể chấp nhận được nhập vào n, tiếp nối chương trình tạo ra tự dưng những bộ phận đến mảng a o Xem bộ phận của mảng o Tìm tìm tuần từ o Tìm tìm nhị phân o Sắp xếp chọn o Sắp xếp cyếu o .… o 11. Sắp xếp theo Radix Sort o 12. Thoát VD: Khi user nhập 1 thì sản xuất mảng, nhập 2 coi các bộ phận của mảng, còn 11 thực hiện sắpxếp theo Radix Sort. khi user nhập 12 thì dứt chương thơm trình! Lưu ý: Lúc lựa chọn chức năng search tìm nhị phân, thì đề xuất soát sổ xem mảng đã được chuẩn bị tăngchưa, SV từ thiết lập công dụng khám nghiệm này. Hướng dẫn Phần có mang những hằng số sử dụng vào công tác Hàm xuất mảng Hàm hoán vị minc họa di chuyển từng bước Hàm bubble sort sử dụng Swap trực quan tiền trên Minch hoạ một trong những phần của hàm main()Gợi ý chương thơm trình://hấp thụ tlỗi viện#include #include #include //quan niệm hằng#define MAX 100#define MAXV 100//định nghĩa những hàm//các hàm bao gồm protype như sau://đắm say nhap day so ngau nhienvoid nhap(int a<>, int &n);//đam mê hien thi day sovoid hienThi(int a<>, int n);//yêu thích tyên ổn kiem su dung giai thuat tyên ổn kiem nhi phan//tra lai ket qua -1 khong tyên thay//ngoai ra la vi tri tlặng duoc.int timKiemTuyenTinh(int a<>, int n, int x);//đam mê tlặng kiem nhi phanint timKiemNhiPhan(int a<>, int n, int x);//ham sap xep day so tang dung giai thuat sap xep noi botvoid sapXepNoiBot(int a<>, int n);//ham sap xep doi cho truc tiepvoid sapXepDoiChoTrucTiep(int a<>, int n);//yêu thích sap xep chenvoid sapXepChen(int a<>, int n);//si mê sap xep chon truc tiepvoid sapXepChon(int a<>, int n);//đắm đuối sap xep shell sortvoid shellSort(int a<>, int n);//mê say sap xep nhanhvoid quickSort(int a<>, int n);void main() //khai bao sở hữu a luu day so ngau nhien int a; in n; int chon; //hien thi thực đơn vày //xoa man hinh clrscr(); //hien thi thực đơn printf(”1: Tao day cac so ngau nhien”); printf(”2: Tyên kiem tuyen tinc ”); printf(”3: Sap xep chon”); printf(”4: Sap xep doi mang đến truc tiep”); printf(”5: Sap xep noi bot”); printf(“6: Sap xep chen”); printf(”7: Shell Sort”); printf(”8: Quick Sort”); printf(”9: Tim kiem nhi phan”); printf(”10: Hien thi day so”); printf(”0 : Thoát”); //doc chon lua cua nguoi dung scanf(”%d”,&chon); //xu ly lua chon tren menu switch (chon) case 1 : //goi si mê nhap day so ngau nhien nhap(a,n); break ; case 2 : //thong bao nhap vao so can tlặng printf(“Cho biet so can tim:”); int x; scanf(“%d”, &x); //goi mê man tyên kiem tuyen tinc int i=timKiemTuyenTinh(a,n,x); //neu khong tim gắng if (i==-1) printf(”Khong tyên ổn vắt %d vào day so”,x); else printf(“Tim nắm %d o vi tri %d vào day so”,x,i); //dung man hinch de coi ket qua getch(); break ; case 3 : //goi si mê sap xep chon break ; case 4 : //goi si sap xep doi đến truc tiep break ; case 5 : //goi mê say sap xep noi bot break ; case 6 : //goi si mê sap xep chen break ; case 7 : //goi đam mê Shell Sort break ; case 8 : //goi đắm say Quiông chồng Sort break ; case 9: //goi yêu thích tlặng kiem nhi phan break; case 10: //goi đê mê hien thi day so break; default : chon=0 ; while (chon);Phần sót lại sinch viên tự thiết lập đặt! Mọi vướng mắc email về: vanthienhoang

Xem thêm: Kiếm Tiền Từ Binomo Lừa Đảo Như Thế Nào, Binomo Lừa Đảo Như Thế Nào

yahoo.com.vn -2-Cấu trúc dữ liệu và giải thuật CNTT Bài thực hành thực tế số 3 Staông xã - QueueBài tập 3.1: Viết lịch trình tính cực hiếm biểu thức trung tố theo những từng trải sau: 1. Nhập biểu thức trung tố: toán hạng, toán tử với vết ngoặc VD: (20+5)/5+(7-3)*100 2. Chuyển biểu thức trung tố thành hậu tố (xuất ra màn hình) VD: đôi mươi 5 + 5 / 7 3 – 100 * + 3. Tính quý giá của biểu thức hậu tố VD: (20+5)/5+(7-3)*100 = 405Yêu cầu: Sinch viên thiết lập staông chồng dùng danh sách liên kết: 1. Knhì báo kết cấu của phần tử vào DSLK sử dụng có tác dụng staông chồng 2. Cài đặt những thao tác: IsEmpty, NewNode, FreeNode, Pop, Push… bên trên Stack.Hướng dẫn: 1. Chuyển biểu thức trung tố thành hậu tố: Duyệt biểu thức trung tố từ trái sang đề xuất Nếu chạm mặt tân oán hạng thì ghi vào chuỗi hiệu quả Nếu gặp mặt lốt msống ngoặc thì push ⇒ staông xã Nếu gặp gỡ tân oán tử gọi là O1 thực hiện quá trình sau: Chừng làm sao còn một toán tử O2 sinh hoạt đỉnh staông chồng với độ ưu tiên của O1 ≤ độ ưu tiên O2 thì đem O2 ra khỏi stack và ghi vào chuỗi kết quả. Push O1 ⇒ staông xã 1Cấu trúc dữ liệu & giải mã CNTT Nếu chạm mặt lốt đóng ngoặc: thì rước tân oán tử vào staông chồng ra cho đến lúc lấy được lốt mngơi nghỉ ngoặc (lưu ý: pop dấu mnghỉ ngơi ngoặc ra, dẫu vậy ko xuất ra chuỗi kết quả) Khi vẫn chăm chút kết biểu thức trung tố, lấy tất cả toán tử vào stachồng với ghi vào chuỗi kết quả. 2. Tính giá trị biểu thức hậu tố: Đọc biểu thức từ bỏ trái lịch sự buộc phải Nếu là toán hạng: Push ⇒ stachồng Nếu gặp toán tử: Lấy 2 toán thù hạng trong staông xã ra Tính cực hiếm của 2 tân oán hạng đó theo tân oán tử Push hiệu quả ⇒ staông chồng Lúc quá trình chấm dứt thì số lượng ở đầu cuối sót lại vào stachồng đó là giá trị của biểu thức kia.Bài tập 3.2: Bài toán thù Tháp Hanoi được miêu tả nhỏng sau: cho 3 cột được tiến công mốc giới hạn lượt là một trong những, 2 cùng 3. Có n đĩa được sắp tới theo đồ vật từ đĩa nhỏ tuổi sinh hoạt trên đĩa phệ. Hãy liệt kê các bước tiến hành để gửi tất cả các đĩa tự cột 1 quý phái cột 2. Quy quy định di chuyển nhỏng sau: 1. Mỗi bước chỉ dịch chuyển 1 đĩa tự cột này lịch sự cột khác. 2. Đĩa tất cả nửa đường kính nhỏ dại luôn luôn sắp bên trên đĩa bao gồm bán kính mập. 1 2 3 1 2 3Yêu cầu: Viết công tác nhtràn vào số đĩa n, triển khai quá trình di chuyển các đĩa, mỗibước dịch rời cho biết cột nguồn (cột rước đĩa) với cột đích (cột đặt đĩa). Giải thuậtdi chuyển ko đệ quy, cần sử dụng staông xã để chứa lên tiếng tạm thời trong quy trình diđưa. 2Cấu trúc dữ liệu và giải mã CNTT Sinc viên thiết lập staông chồng cần sử dụng list link, mỗi node phần info đựng 3biết tin số đĩa dịch rời, cột nguồn, cột đích.Hướng dẫn: Như họ biết bài toán tháp Hanoi thường xuyên được giải bằng phương thức đệquy. Tuy nhiên hoàn toàn có thể giải bằng phương pháp dùng staông chồng để khử đệ quy. Để tiến hành việclưu trữ trợ thời trong quá trình dịch chuyển chúng ta sử dụng một stachồng. Trong đó từng phầntử của staông chồng này chứa những thông tin gồm: số đĩa dịch chuyển (N), cột mối cung cấp bắt đầudịch chuyển (Nguon) cùng cột đích là khu vực bắt buộc di chuyển cho (Dich). Tại đây không cầngiữ cột trung gian vị tất cả 3 cột khắc số là 1 trong, 2 và 3 thì cột trung gian nhằm di chuyểnlà: 6 – (Nguon+Dich). Trước hết gửi vào stachồng biết tin di chuyển n, 1, 2, Tức là di chuyển n đĩa từcột 1 thanh lịch cột thứ hai qua cột trung gian là 6-(1+2) = 3. Tại mỗi bước khi rước vào staông xã ra một trong những phần tử. họ triển khai nlỗi sau: Nếu N = 1: ⇒ dịch rời đĩa trường đoản cú cột Nguon -> cột Dich Ngược lại (nếu N > 1): • Xác định cột trung gian TrungGian = 6 – (Nguon+Dich) • Push ⇒ staông chồng đọc tin dịch rời N-1, TrungGian, Dich • Push ⇒ stack công bố dịch rời 1, Nguon, Dich • Push ⇒ staông xã ban bố dịch rời N-1, Nguon, TrungGian Quá trình còn thực hiện khi staông xã khác trống rỗng.Nhận xét: Lưu ý máy từ lúc gửi vào đọc tin di chuyển vào stachồng. Trong phầntrên lên tiếng N-1, Nguon, TrungGian được chuyển vào stack sau cuối cần chúngsẽ tiến hành kéo ra trước tiên, tiếp theo là báo cáo di chuyển 1, Nguon, Dich và cuốithuộc là biết tin dịch rời N-1, TrungGian, Dich.Bài tập 3.3: Viết công tác thống trị kho đơn giản dễ dàng thực hiện những công dụng sau: 1. Cho phnghiền thêm 1 sản phẩm vào kho 2. Xuất một loại mặt hàng ra khỏi kho 3Cấu trúc dữ liệu và giải mã CNTT 3. Xem toàn bộ mặt hàng hoá vào kho 4. Xem món đồ làm sao sau đó sẽ tiến hành xuất khoYêu cầu 1. Cài đặt cấu trúc dữ liệu HàngHoá: tất cả những dữ liệu nào liệt kê ra 2. Cài đặt một Queue cất các sản phẩm hoá vào kho 3. Cài đặt các làm việc trên Queue 4. Cài đặt những chức năng theo trình bày của bài tập. Thời gian làm cho bài bác tập 3: trường đoản cú Dường như sinch viên rất có thể bổ sung hầu như chức năng không ngừng mở rộng tùy ý. Tất cả cáctác dụng trí tuệ sáng tạo của sinch viên phần nhiều được đánh giá cao!Mọi thắc mắc tin nhắn về: vanthienhoang
yahoo.com.vn 4 Môn: CTDL & GT Bài thực hành thực tế số 4 Cây nhị phân tìm kiếmBài tậpViết công tác cai quản định kỳ công tác hồi tháng đơn giản: được cho phép nhtràn lên nội dungcông việc đề nghị làm theo ngày, theo giờ. Trong một ngày hoàn toàn có thể có rất nhiều quá trình, mỗi côngViệc gồm tiếng bắt đầu, thương hiệu các bước, nội dung quá trình, đặc thù quá trình khôn xiết quan trọng,đặc trưng, thông thường, ko cần thiết…Cmùi hương trình tất cả những tính năng chủ yếu nhỏng sau: - Nhập ngôn từ công việc cần làm theo ngày, theo giờ - Xem định kỳ công tác theo ngày tận hưởng - Xem các quá trình theo tính chất: hết sức quan trọng, quan tiền trọng… - Xem các công việc vẫn hoàn chỉnh - Xem những công việc không triển khai - Xem những các bước từ ngày a đến ngày b - Xóa xuất xắc điều chỉnh kế hoạch công tác làm việc. Nếu sau khoản thời gian điều chỉnh, ngày nào không hề vấn đề nên có tác dụng đang xóa sổ lịch công tác. Yêu cầu: công tác bao gồm thiết đặt cây nhị phân tìm kiếm tìm (BST): - Mỗi nút ít trên cây BST là một ngày của kế hoạch công tác làm việc - Trong mỗi nút ít ngày trên cây lại cất một list link lưu lên tiếng các quá trình. - lúc thêm một công việc vào một trong những ngày đang mãi sau trên cây, thì các bước này sẽ tiến hành đưa vào list link đựng những công việc theo sản phẩm từ bỏ tăng nhiều của giờ đồng hồ bước đầu.Hình vẽ minc họa kết cấu cây định kỳ công tác Hình 1: Cấu trúc cây định kỳ công tác Nâng cao (không đề nghị, dành cho sinh viên khá, giỏi)Ttuyệt list link cất các bước trong thời gian ngày thành lá nhị phân tìm tìm, khóa đểthi công cây BST con là giờ bắt đầu! Hình 2: Cấu trúc cây lịch công tác cải thiện Tất cả các chức năng sáng chế của SV hầu hết được review cao!