Bài tập Các kiểu dữ liệu cơ bản pdf

5 734 0
Bài tập Các kiểu dữ liệu cơ bản pdf

Đang tải... (xem toàn văn)

Thông tin tài liệu

Chương 2 Các kiểu dữ liệu bản 1. Viết ct thực hiện các phép toán tr ên ma trận vuông số thực: cộng, trừ, nhân 2. Viết ct minh họa một barner quảng cáo gồm một khung cửa sổ v à dòng chữ quảng cáo chạy qua lại trong khung 3. Viết ct quản lý mặt hàng, thông tin một mặt hàng gồm: mã hàng, tên hàng, đơn vị tính, đơn giá, số lượng. Chương trình các chức năng: a. Nhập mặt hàng b. In danh mục mặt hàng c. Tính doanh thu= Tổng(Đơn giá* Số lượng) các mặt hàng d. Tính thuế GTGT: i. Nếu đơn vị tính là “Chai” : thuế = 10% ii. Nếu đơn vị tính là “Kg”: thuế = 5% iii. Còn lại không thuế 4. Viết ct đọc nội dung một file văn bản, hiển thị l ên màn hình và cho bi ết trong file bao nhi êu từ, đếm số lần xuất hiện của 1 từ do ng ười dùng nhập vào. 5. Viết ct quản lý lương nhân viên sử dụng tập tin nhị phân a. Dữ liệu lưu trữ gồm: mã nv, họ tên, ngày sinh, lương b ản, hệ số lương, số ngày công, số ngày nghỉ b. Tính lương theo công th ức Lương = Lương cb * h ệ số lương * (ngày công – ngày nghỉ) /24 c. Chương trình các chức năng i. Nhập hồ sơ ii. In danh sách nhân viên iii. In bảng lương iv. Tìm kiếm nhân viên 6. Viết ct mô phỏng Karaoke với dữ liệu l ưu trữ trong tập tin nhị phân 7. Hãy nêu giải thuật mà độ phức tạp tính toán của nó l à O(1) 8. Giải thích tại sao T(n) = O(n) th ì cũng sẽ đúng khi ta viết T(n) = O(n2) 9. Với các đoạn chương trình dưới đây hãy xác định độ phức tạp tính toán của giải thuật bằng ký pháp O lớn, trong trường hợp xấu nhất a) Sum := 0 For i := 1 to n do Begin Readln(x); Sum := Sum + x; End b) For i := 1 to n do For j := 1 to n do Begin C[i, j] := 0; For k := 1 to n do C[i, j] := C[i, j] + A[i, k] * B[k, j] End; c) For i := 1 to n-1 do Begin For j := i to n-1 do If X[j] > X[j+1] then Begin Temp := X[j]; X[j] := X[j+1]; X[j+1] := Temp End End Chương 3 Các thuật tốn sắp xếp và tìm kiếm 1. Viết ct nhập một mảng số nguy ên ( tạo mảng ngẫu nhiên), thực hiện sắp xếp mảng theo các thuật tốn a. Chọn trực tiếp b. Chèn trực tiếp c. Đổi chỗ trực tiếp d. Nổi bọt e. Shaker sort f. Shell sort g. Heap sort h. Quick sort i. Merge sort j. Radix sort 2. Viết ct nhập một dãy số ngun, lưu trữ trong tập tin nhị phân, thực hiện thao tác sắp xếp dữ liệu bằng các thuật tốn a. Trộn tự nhiên b. Trộn trực tiếp 3. Dùng các phép tốn xâu kí t ự bản, viết một thuật tốn đệ qui để xác định một xâu kí tự l à palindrome hay khơng. Xâu kí tự được gọi là palindrome nếu nó khơng thay đổi khi ta đảo ng ược thứ tự của các kí tự trong xâu kí tự Ví dụ : MADAM, 45811854 … 4. Viết ct minh họa bài tốn đặt tám qn hậu 5. Viết ct minh họa bài tốn Tháp Hà nội 6. Viết ct minh họa bài tốn qn mã đi tuần 7. Viết ct liệt kê dãy nhị phân độ dài n bít 8. Viết ct liệt kê các hốn vị của các số ngun từ 1 đến n Chương 4 Cấu trúc dữ liệu động 1. Viết ct minh họa các thao tác tr ên danh sách liên kết đơn chứa các số ngun 2. Viết ct minh họa các thao tác trên danh sách liên kết kép chứa các số nguy ên 3. Cho một ngăn xếp s và 1 đoạn chương trình như sau: struct STACK s; int x, y = 5; Push(s, 8); Push(s, y); Push(s, 9); Pop(s, x); Push(s, 18); Pop(s, x); Push(s, 22); while (IsEmp ty(s) == 0) { Pop(s, x); printf(“%d “, y); } Hãy cho biết kết quả in ra màn hình khi thi hành đoạn chương trình trên là gì ? 4. Cho một hàng đợi q và 1 đoạn chương trình như sau: struct QUEUE q; int x = 5, y = 3; EnQueue(q, 8); EnQueue(q, 9); EnQueue(q, y); DeQueue(q, x); EnQueue(q, 18); DeQueue(q, x); EnQueue(q, 22); while (IsEmpty(q) == 0) { DeQueue(q, y); printf(“%d “, y); } Hãy cho biết kết quả in ra màn hình khi thi hành đoạn chương trình trên là gì ? 5. Viết ct minh họa các thao tác tr ên ngăn xếp 6. Viết ct minh họa các thao tác tr ên hàng đợi 7. Viết ct chuyển đổi giữa các hệ thồng số d ùng ngăn xếp 8. Viết ct tính giá trị của biểu thức tiền tơ, hậu tố d ùng ngăn xếp 9. Viết một chương trình đọc một xâu ký tự, đẩy mỗi kí tự vào ngăn xếp theo thứ tự như khi chúng được đọc và đồng thời thêm nó vào một hàng đợi. Khi đến kết thúc xâu kí tự, d ùng các phép tốn bản của ngăn xếp và hàng đợi để xác định xâu ký tự đó phải l à một Palindrome khơng. 10. Cho 2 xâu liên kết T1 và T2. Giả thiết mỗi phần tử của chúng chỉ 2 thơng tin : - Khóa của nút (là số ngun) - Con trỏ đến phần tử kế Viết chương trình tạo một xâu liên kết T nối từ 2 xâu T1 v à T2 sao cho : - Các phần tử trong T giá trị tăng - Khơng trường hợp trùng nhau - Xác định chi phí thuật tốn 11. Cho một xâu đơn T, mỗi nút của nó chứa các thơng tin sau : - Key : kiểu Integer - Next : con trỏ chỉ đến phần tử kế Viết chương trình C/Pascal tách xâu T thành 2 xâu T1 và T2, trong đó T1 chứa các phần tử khóa > 0 và T2 chứa các phần tử khóa < 0. Đánh giá chi phí thu ật tốn. 12. Cho 2 xâu đơn T1, T2 vi ết ct thực hiện các thao tác - Sắp xếp tăng dần, giảm dần - So sánh 2 xâu - Đếm nút dùng đệ quy - Tính tổng giá trị các nút, tổng chẵn, tổng lẻ - Kiểm tra xâu T1 xuất hiện trong xâu T2 không v à ngược lại 13. Hãy cài đặt thuật toán Quicksort không d ùng đệ qui. 14. Cho dãy số f(n) = 1 nếu n = 0 hay n = 1 f(n-1) + f(n-2) nếu n > 1 - Hãy viết một thủ tục/hàm đệ qui tính giá trị của f(n), với n đ ược nhập từ bàn phím. - Hãy viết một thủ tục/hàm không đệ qui tính giá trị của f(n), với n được nhập vào từ bàn phím. Sử dụng Stack để khử đệ qui. 15. Cho 2 xâu đơn T1, T2 ci ết ct thực hiện các thao tác - Tìm phần giao của 2 xâu - Tìm phần hội của 2 xâu - Tìm phần hiệu của 2 xâu Chương 5 Bảng băm 1. Viết ct mô phỏng các thao tác tr ên bảng băm sử dụng phương pháp dò tuyến tính 2. Viết ct mô phỏng các thao tác tr ên bảng băm sử dụng ph ương pháp nối kết 3. Viết ct mô phỏng các thao tác tr ên bảng băm sử dụng ph ương pháp dò bậc hai 4. Viết ct tổ chức lưu trữ từ điển dưới dạng bảng băm 5. Hãy chọn cấu trúc dữ liệu thích hợp để biểu diễn trong bộ nhớ chính một từ điển tần số gồm tối đa 1000 từ, mỗi từ độ dài 10 ký tự, đi kèm với mỗi từ là số lần xuất hiện của từ đó (đ ã được thu thập từ một số văn bản nào đó). Yêu cầu : a. Thời gian truy cập đến một từ l à tối thiểu b. Bộ nhớ được dùng là tối thiểu c. Giả sử cấu trúc dữ liệu biểu diễn từ điển tần số (câu a.) đ ã được định nghĩa và chứa đầy đủ dữ liệu. Viết chương trình C/Pascal liệt kê ra 100 từ tần số lớn nhất. Chương 6 Cấu trúc cây 1. Hãy cài đặt thuật toán duyệt cây nhị phân (NLR) không dùng đệ qui (dùng stack) 2. Hãy cài đặt thuật toán duyệt cây nhị phân theo mức không dùng đệ qui (dùng queue) 3. Cho một cây nhị phân tìm kiếm với gốc là Root, giá trị lưu trữ tại mỗi nút là một số nguyên (int). Hãy viết đoạn chương trình tìm phần tử nhỏ nhất trong cây. 4. Cho một cây nhị phân cấu trúc nút l à NODE, hãy: a. Viết thủ tục/hàm để tính tổng số nút 1 nhánh con (con trái HAY con phải) bằng cách d ùng thuật toán duyệt gốc giữa NLR. b. Thiết lập 1 công thức đệ qui để thực hiện y êu cầu ở câu [a]. Cài đặt công thức này thành thủ tục/hàm. 5. Cho một cây nhị phân tìm kiếm t cấu trúc nút là BST_NODE được khai báo như sau: struct BST_NODE { int Key; // Khoá của nút int So_lan; // Số lần xuất hiện của khoá trong cây struct BST_NODE *Left, *Right ; } struct BST_TREE { struct BST_NODE *pRoot; // Nút gốc của cây } struct BST_TREE t; // Cây t a. Hãy viết thủ tục/hàm thực hiện thao tác xoá phần tử khoá X. Cách xoá nh ư sau: · Nếu phần tử X tồn tại, giảm field So_lan của nó 1 đ ơn vị. · Nếu phần tử X không tồn tại, thông báo. b. Hãy viết 1 thủ tục/hàm in lên màn hình giá tr ị của các phần tử đang tồn tại trong cây theo thứ tự NLR. Ghi chú: một phần tử được gọi là tồn tại trong cây nếu So_lan > 0. 6. Cho một cây nhị phân gốc l à Root, mỗi nút chứa một số n guyên. a. Hãy viết chương trình tính trung bình c ộng của các nút trong cây. b. Hãy viết chương trình tính trung bình cộng của các số dương trong cây. c. Hãy viết chương trình tính trung bình c ộng của các số âm trong cây. d. Hãy viết chương trình tính tỉ số: R = a / b Với a = tổng số các nút giá trị > 0 b = tổng số các nút giá trị < 0 7. Hãy viết một thủ tục/hàm tạo một danh sách liên kết đơn từ cây trên sao cho giá trị các phần tử trong danh sách thứ tự giảm dần. Biết gốc của cây l à ROOT. . Chương 2 Các kiểu dữ liệu cơ bản 1. Viết ct thực hiện các phép toán tr ên ma trận vuông số thực: cộng, trừ, nhân 2. Viết ct minh. dãy số ngun, lưu trữ trong tập tin nhị phân, thực hiện thao tác sắp xếp dữ liệu bằng các thuật tốn a. Trộn tự nhiên b. Trộn trực tiếp 3. Dùng các phép tốn xâu kí t ự cơ bản, viết một thuật tốn đệ. ct liệt kê các hốn vị của các số ngun từ 1 đến n Chương 4 Cấu trúc dữ liệu động 1. Viết ct minh họa các thao tác tr ên danh sách liên kết đơn chứa các số ngun 2. Viết ct minh họa các thao tác

Ngày đăng: 31/03/2014, 19:20

Từ khóa liên quan

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

Tài liệu liên quan