1 1. Kết quả nào đúng khi thực hiện giải thuật sau: long lt(int n) {if (n==0) return 1; else return (2*lt(n-1); } A. lt(12) = 2010 B. lt(12) = 1024 C. lt(7) = 720 D. lt(6) = 64 2. Kết quả nào đúng khi thực hiện giải thuật sau với a[]= {1, 3, 5}; n= 5, k= 3 : void ToHopKe(int a[], int n, int k) {int i, j, tmp = 0; for (i= 1;i<= k; i++) if (a[i]!= n-k+i) {tmp= 1;break;} if (tmp==0) return; i= k; while (a[i]>= n-k+i) i ; a[i]= a[i] + 1; for (j= i+1;j <=k;j++) a[j]= a[i] + j - i; for (i= 1; i<= n; i++) printf("%d ", a[i]); } A. 2 3 4 B. 1 2 3 C. 2 3 5 D. 1 4 5 3. Kết quả nào đúng khi thực hiện giải thuật sau với a[]= {-3, -3, 15, -3}; n= 4; x= -3: int FindX(int a[], int n, int x) {int i; for (i= n; i>= 1; i ) if (a[i]==x) return (i); return (-1); } A. 1 B. 2 C. 3 D. 4 4. Dấu hiệu nào dưới đây cho biết danh sách liên kết đơn L là rỗng: A. (L->left == NULL) B. (L->ìnfor == NULL) C. (L->next == NULL) D. (L == NULL) 2 5. Kết quả nào đúng khi thực hiện giải thuật sau với a[]= {1, 3, 5, 4, 2}; n= 5: void HoanViKe(int a[],int n) {int i, k, r, s, tmp = 0; for(i=1;i<=n;i++) if(a[i]!=n-i+1) {tmp=1;break;} if(tmp==0) return; i= n-1; while(a[i]>a[i+1]) i= i - 1; k= n; while(a[k]< a[i]) k= k - 1; tmp= a[i]; a[i]= a[k]; a[k]=t mp; r= i+1; s= n; while(r< s) {tmp = a[r]; a[r]= a[s]; a[s]= tmp; r++; s ; } for(i= 1; i<= n; i++) printf("%d ", a[i]); } A. 1 4 2 3 5 B. 5 4 3 2 1 C. 1 4 5 3 2 D. 1 3 4 2 5 6. Thao tác nào dưới đây thực hiện trên hàng đợi (queue): A. Thêm phần tử vào lối sau B. Loại bỏ phần tử ở lối sau C. Thêm phần tử vào lối trước D. Thêm và loại bỏ phần tử tại vị trí bất kỳ 7. Dấu hiệu nào dưới đây cho biết hàng đợi đã có thao tác thêm và loại bỏ phần tử là rỗng: A. Lối trước có giá trị > giá trị của lối sau B. Lối sau nhận giá trị = 0 C. Lối trước có giá trị < giá trị của lối sau D. Lối trước nhận giá trị = 0 8. Thao tác nào dưới đây thực hiện trên ngăn xếp (stack): A. Thêm phần tử vào vị trí bất kỳ B. Loại bỏ phần tử tại vị trí bất kỳ C. Thêm và loại bỏ phần tử luôn thực hiện tại vị trí đỉnh (top) D. Thêm và loại bỏ phần tử có thể thực hiện tại vị trí bất kỳ 9. Nút có khóa lớn nhất trong cây nhị phân tìm kiếm khác rỗng là: A. Nút con bên phải nhất B. Nút con bên trái nhất C. Nút gốc D. Tất cả các nút 10. Trong phép duyệt cây nhị phân có 24 nút theo thứ tự sau, nút gốc có thứ tự: A. Thứ 1 B. Thứ 2 C. Thứ 23 D. Thứ 24 11. Nút có khóa nhỏ nhất trong cây nhị phân tìm kiếm khác rỗng là: A. Nút gốc B. Tất cả các nút C. Nút con bên phải nhất D. Nút con bên trái nhất 3 12. Cây nhị phân khác rỗng là cây: A. Mỗi nút (trừ nút lá) đều có hai nút con B. Tất cả các nút đều có nút con C. Mỗi nút có không quá 2 nút con D. Tất cả các nút đều có nút cha 13. Đồ thị G có n đỉnh và m cạnh với m n thì ma trận kề của G luôn có dạng : A. là ma trận vuông cấp n B. là ma trận cấp nxm C. là ma trận vuông cấp m D. là ma trận cấp mxn 14. Đồ thị vô hướng G có chu trình Euler khi và chỉ khi : A. G liên thông và mọi đỉnh G có bậc chẵn B. mọi đỉnh G có bậc chẵn C. G có chu trình Hamilton D. G là liên thông 15. Đồ thị G là liên thông khi và chỉ khi: A. G là đồ thị có hướng B. G là đồ thị vô hướng C. Có đường đi giữa hai đỉnh bất kỳ G D. G có đường đi Euler 16. Hãy viết các thao tác chuyển tháp khi thực hiện hàm dưới đây vơi n= 3, a= 3 và b = 1: void MOVE(int n, int a, int b) { if(n==0) return; MOVE(n-1, a, 6-a-b); cout<<a<<" => "<< b<< “\n”; MOVE(n-1, 6-a-b, b); } 1) 2) 3) 4) 5) 6) 7) 17. Viết kết quả của biểu thức dạng hậu tố E= 6 27 25 - * 15 8 - 3* - khi ứng dụng ngăn xếp: E = 18. Viết các phần tử của mảng a[] = {27, 40, -7, 5, 57} tại mỗi giai đoạn i khi áp dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo thứ tự giảm: (i= 5) (i= 4) (i= 3) (i= 2) 19. Viết các phần tử của mảng a[] = {27, 40, -7, 5, 57} tại mỗi giai đoạn i khi áp dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo thứ tự giảm: (i= 5) (i= 4) (i= 3) (i= 2) 20. Viết các phần tử của mảng a[] = {27, 40, -7, 5, 57} tại mỗi giai đoạn i khi áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo thứ tự giảm: (i= 5) (i= 4) ( i= 3) (i= 2) 4 21. Viết các phần tử của cây nhị phân tìm kiếm được tạo từ các nút có khóa là các số nguyên 2, 10, 15, -5, -2, 13, -12 khi thực hiện phép duyệt cây theo thứ tự sau: 22. Viết các phần tử của cây nhị phân tìm kiếm được tạo từ các nút có khóa là các số nguyên 2, 10, 15, -5, -2, 13, -12 khi thực hiện phép duyệt cây theo thứ tự giữa 23. Viết các phần tử của cây nhị phân tìm kiếm được tạo từ các nút có khóa là các số nguyên 2, 10, 15, -5, -2, 12, -12 khi thực hiện phép duyệt cây theo thứ tự trước: 24. Viết xâu mã Huffman của 4 chữ cái A, B, C, D trong bản tin M, biết tần số xuất hiện của chúng trong M tương ứng là: 0,45; 0,15; 0,30 và 0,10: 25. Viết thứ tự được duyệt của các đỉnh thuộc đồ thị G khi thực hiện tìm kiếm theo chiều sâu bắt đầu từ đỉnh 1, trong đó G được biểu diễn dưới dạng ma trận kề sau: A = 000101 000011 000011 100001 011001 111110 26. Viết thứ tự được duyệt của các đỉnh thuộc đồ thị G khi thực hiện tìm kiếm theo chiều rộng bắt đầu từ đỉnh 1, trong đó G được biểu diễn dưới dạng ma trận kề sau: A = 000101 000011 000011 100001 011001 111110 5 27. Viết đường đi Euler của đồ thị vô hướng G biểu diễn bởi ma trận kề sau: A = 001010 000011 100111 001001 111001 011110 28. Viết độ dài đường đi ngắn nhất từ đỉnh 1 đến đỉnh 5 và các đỉnh nằm trên đường đi đó trong đồ thị G biểu diễn bởi ma trận trọng số A với A[i,j]= 0 nếu không có cạnh nối i đến j: A = 00501 10030 020025 20100 0150100 29. Tìm hai đỉnh i j của đồ thị G sao cho tổng độ dài đường đi từ i đến j và từ j về i là nhỏ nhất, G biểu diễn bởi ma trận trọng số A với A[i,j]= 0 nếu không có cạnh nối i đến j: A = 0010 5000 10103 1910120 i= j= 30. Viết tổng trọng số WT của cây khung nhỏ nhất T trong đồ thị G biểu diễn bởi ma trận trọng số A với A[i,j]= 0 nếu không có cạnh nối i đến j: A = 01011 10530 05013 131007 10370 WT= T= 30. Nhân tố nào là nhân tố chính ảnh hưởng đến thời gian tính của một giải thuật a. Máy tính b. Thuật toán được sử dụng c. Chương trình dịch d. Kích thước của dữ liệu đầu vào của thuật toán 6 31.Chọn phát biểu đúng trong các phát biểu dưới đây: bằng cách chạy thử 1 thuật toán với 1 bộ dữ liệu, ta có thể: a. Khẳng định thuật toán đúng nếu nó cho kết quả đúng b. Khẳng định thuật toán sai nếu cho kết quả sai c. Khẳng định thuật toán tốt nếu cho kết quả nhanh d. Khẳng định thuật toán hiệu quả nếu cho kết quả đúng 32.Trong các mệnh đề sau đây, mệnh đề nào sai: a. Kiểu dữ liệu là một tập hợp nào đó các phần tử dữ liệu cùng chung một thuộc tính b. Hệ kiểu của một ngôn ngữ bao gồm các kiểu dữ liệu đơn và các phương pháp cho phép ta từ các kiểu dữ liệu đã có xây dựng nên các kiểu dữ liệu mới c. Cấu trúc dữ liệu là các dữ liệu phức tạp, được xây dựng nên từ các kiểu dữ liệu đã có, đơn giản hơn bằng các phương pháp liên kết nào đó d. Một trong ba mệnh đề trên là sai 33. Tìm mệnh đề sai trong các mệnh đề sau: Một cấu trúc dữ liệu bao gồm… a. Một tập hợp nào đó các dữ liệu thành phần b. Các dữ liệu thành phần đặt sát nhau trong bộ nhớ ĐÁP ÁN-MÔN CẤU TRÚC DỮ LIỆU & GIẢI THUẬT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 D D D D A A A C A D D C A A C 16 :1)3 1 2)3 2 3)1 2 4)3 1 5)2 3 6)2 1 7)3 1 17 : E = -546 18 : (i= 1) 57 27 -7 5 40 (i= 2) 57 40 -7 5 27 (i= 3) 57 40 27 -7 5 (i= 4) 57 40 27 5 -7 19 : (i= 5) 40 27 5 57 -7 (i= 4) 40 27 57 5 -7 (i= 3) 40 57 27 5 -7 (i= 2) 57 40 27 5 -7 20 : (i= 1) 40 27 -7 5 57 (i= 2) 40 27 -7 5 57 (i= 3) 40 27 5 -7 57 (i= 4) 57 40 27 5 - 7 21 : -12 -2 -5 13 15 10 22 : -12 -5 -2 2 10 13 23 : 2 -5 -12 -2 10 15 7 2 15 13 24: A B C D 0 101 11 100 25: 1 2 4 5 3 6 26: 1 2 3 4 5 6 27: 1 2 4 1 3 4 6 2 5 1 28: 12 1 2 5 29: i = 2 j = 3 30: WT= 6 T= (1, 3), (1, 5), (2, 5), (4, 5) Trần_Thế Quỳnh 08CTH02 Add :tranthequynh10091990@yahoo.com Or tranthequynh10091990@gmail.com . c c c nút C. Nút con bên phải nhất D. Nút con bên trái nhất 3 12. C y nhị phân kh c rỗng là c y: A. Mỗi nút (trừ nút lá) đều c hai nút con B. Tất c c c nút đều c nút con C. Mỗi nút c . Viết c c phần tử c a c y nhị phân tìm kiếm đư c tạo từ c c nút c khóa là c c số nguyên 2, 10, 15, -5, -2, 13, -12 khi th c hiện phép duyệt c y theo thứ tự sau: 22. Viết c c phần tử c a c y. đư c tạo từ c c nút c khóa là c c số nguyên 2, 10, 15, -5, -2, 13, -12 khi th c hiện phép duyệt c y theo thứ tự giữa 23. Viết c c phần tử c a c y nhị phân tìm kiếm đư c tạo từ c c nút c