Môn thi Cấu trúc dữ liệu và giải thuật KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH Họ và tên BỘ MÔN KHOA HỌC MÁY TÍNH MSSV ĐỀ THI CUỐI KÌ MÔN THI CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NGÀY THI 16/12/2013 THỜI GIAN 12[.]
Môn thi: Cấu trúc liệu giải thuật KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH Họ tên: ………………………………… BỘ MƠN KHOA HỌC MÁY TÍNH MSSV: …………………………………… ĐỀ THI CUỐI KÌ MƠN THI: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NGÀY THI: 16/12/2013 Sinh viên phép sử dụng tài liệu THỜI GIAN: 120 PHÚT Sinh viên không phép sử dụng tài liệu MÃ ĐỀ: 1001 Hướng dẫn làm bài: Sinh viên phải ghi họ tên mã số sinh viên vào đề thi Sinh viên phải nộp lại đề thi Phần I: TRẮC NGHIỆM Sinh viên làm đề thi cách khoanh tròn câu trả lời Phần II: ĐIỀN CHỖ TRỐNG Sinh viên làm đề thi Phần III: THIẾT KẾ GIẢI THUẬT Sinh viên làm giấy thi PHẦN I: TRẮC NGHIỆM (3.0 điểm) Để trọn số điểm này, sinh viên cần trả lời 10 câu Giải thuật xếp có độ phức tạp thời gian trường hợp tốt nhất, xấu trung bình A Giải thuật xếp chèn trực tiếp(straight insertion sort) B Giải thuật xếp chọn trực tiếp(straight selection sort) C Giải thuật xếp bọt (bubble sort) D Giải thuật xếp nhanh (quick sort) Giải thuật xếp có độ phức tạp O(n) trường hợp tốt A Giải thuật xếp chọn trực tiếp(straight selection sort) B Giải thuật xếp heap (heap sort) C Giải thuật xếp bọt (bubble sort) D Giải thuật xếp nhanh (quick sort) Giả sử ta dùng dãy để biểu diễn heap, cho biết dãy số đây, dãy KHÔNG phải biểu diễn heap A 19, 17, 16, 12, 9, 15, 1, 2, 11, 7, 3, 10, 14 B 19, 17, 16, 15, 14, 12, 11, 10, 9, 7, 3, 2, C 1, 2, 3, 7, 9, 10, 11, 12, 14, 15, 16, 17, 19 D 19, 17, 16, 11, 9, 15, 1, 2, 12, 7, 3, 10, 14 Trang 1/4 Mã đề: 1001 Môn thi: Cấu trúc liệu giải thuật Cho đồ thị có hướng hình vẽ, đâu KHƠNG phải thứ tự topo đồ thị A B C D 1, 5, 2, 6, 3, 1, 5, 6, 2, 3, 5, 1, 6, 3, 4, 5, 1, 2, 6, 4, Cho biết nhận định ĐÚNG A Cây B-tree nhị phân B Cây AVL nhị phân C Cả A B D Cả A B sai Cho đồ thị liên thông G với tập đỉnh V = (a, b, c, d, e, f), tập cạnh E={(a,b), (a,e),(a,c),(b,e),(e,d),(d,f),(f,c)} Từ đỉnh a, tiến hành duyệt đồ thị theo chiều sâu, ta kết (Lưu ý: trường hợp có nhiều đỉnh chọn, đỉnh đưa vào ngăn xếp theo thứ tự bảng chữ cái) A abedfc B acfebd C aebdfc D aedfcb Cho AVL hình vẽ Chèn thêm nút có giá trị vào AVL Hãy cho biết điều chỉnh cây, nút gốc ta thực thao tác A Thực phép quay đơn B Thực phép quay kép C Không cần phải thực thao tác quay D Xóa nút gốc Cho dãy số (5, 12, 20, 26, 37, 42, 46, 50, 64), sử dụng tìm kiếm nhị phân, tìm phần tử có giá trị 26 cần phải thực phép so sánh A B C D Đối với AVL, hệ số cân nút có giá trị nằm đoạn A.[-1, 1] B.[-2, 2] C.[0, 1] D.[1, 2] 10 Cho dãy số (7, 3, 5, 9, 1, 12), sử dụng min-heap tiến hành xếp dãy số Giả sử min-heap biểu diễn dạng dãy, phần tử chèn vào tương ứng với thứ tự dãy Vậy min-heap kết là: A 1, 3, 5, 7, 9, 12 B 1, 3, 5, 9, 7, 12 C 1, 5, 3, 7, 9, 12 D 1, 5, 3, 9, 12, 11 Để nâng cao hiệu tìm kiếm bảng hash, sử dụng biện pháp sau: a)Thiết kế hàm hash cho giảm xung đột b)Khi xử lý xung đột cần tránh tượng gom cụm Trang 2/4 Mã đề: 1001 Môn thi: Cấu trúc liệu giải thuật c)Tăng hệ số tải α (load factor) Nhận định sau A a) B b) C a) b) D b) c) 12 Tạo bảng hash từ dãy số (23, 44, 36, 48, 52, 73, 64, 58), phần tử đưa vào bảng hash tương ứng với thứ tự dãy, sử dụng hàm H(k)=k%13 để tính địa chỉ, giả sử bảng hash có khơng gian địa H[0 15], sử dụng phương pháp thăm dị tuyến tính (linear probing) để giải xung đột Hãy cho biết địa hash phần tử 36 A.3 B.10 C.15 D.11 PHẦN II: ĐIỀN CHỖ TRỐNG (4.0 điểm) Để trọn số điểm này, sinh viên cần trả lời 10 câu Đối với phương pháp lưu trữ tìm kiếm hash, hai vấn đề quan tâm _ _ _ Giả sử ta biểu diễn min-heap dạng dãy, ta có min-heap (10, 21, 35, 32, 37, 56, 64, 48, 85, 63, 71, 92) Hãy cho biết min-heap (dưới dạng dãy) sau chèn thêm vào min-heap phần tử có giá trị Giả sử ta biểu diễn min-heap dạng dãy, ta có min-heap (10, 21, 35, 32, 37, 56, 64, 48, 85, 63, 71, 92) Hãy cho biết min-heap (dưới dạng dãy) sau bỏ phần tử nhỏ Xây dựng B-tree bậc tương ứng với dãy số (7, 13, 5, 20, 23, 4, 3, 16, 14, 18, 31) Giả sử phần tử chèn vào tương ứng với thứ tự dãy Hãy vẽ kết Hãy vẽ B-tree bậc tương ứng với dãy số (7, 13, 5, 20, 23, 4, 3, 16, 14, 18, 31) sau xóa phần tử 16, 18 23 khỏi Chỉ cần vẽ kết cuối Trang 3/4 Mã đề: 1001 Môn thi: Cấu trúc liệu giải thuật Cho dãy từ khóa B = {56, 23, 41, 79, 38, 62, 18}, giả sử bảng hash có khơng gian địa H[0 10], cho hàm hash H(key) = key % 11, đồng thời sử dụng phương pháp thăm dị tuyến tính (linear probing) để giải xung đột Hãy vẽ bảng hash 56 23 79 38 62 41 18 10 Cho AVL hình vẽ Hãy vẽ AVL sau chèn nút có giá trị 17 (chỉ cần vẽ kết cuối cùng, không cần vẽ bước trung gian) 3 2 5 Cho AVL hình vẽ Hãy vẽ AVL sau xóa nút có giá trị 20 (chỉ cần vẽ kết cuối cùng, không cần vẽ bước trung gian) 7 Cho bảng hash hình vẽ dưới: 35 20 33 48 59 10 11 12 Biết hàm hash H(key) = key % 13, xử lý xung đột hash kép (double hashing) với HP(k, i) = (H(k) + i*H1(k)) % 13 với H1(k) = (k % 11) + 1, cho biết tìm kiếm từ khóa 35, 20, 33 48 cần phải sử dụng đến hàm HP lần _ 10 Cho đồ thị hình vẽ dưới, sử dụng giải thuật Prim để tìm phủ tối thiểu Giả sử đỉnh A, vẽ phủ tối thiểu 50 V1 60 V3 45 42 V4 V7 V2 50 30 40 V5 V6 70 65 52 Trang 4/4 Mã đề: 1001 Môn thi: Cấu trúc liệu giải thuật 11 Dựa giải thuật xếp bọt (Bubble sort) trình bày slide môn học, vẽ bảng biểu diễn kết bước thực thi giải thuật Hàng bảng dãy số ban đầu, hàng thứ kết sau bước thực thi thứ Hãy điền vào hàng lại 46 74 53 14 26 38 86 65 27 34 14 46 74 53 26 27 38 86 65 34 12 Cho đồ thị hình vẽ sau: a) Bắt đầu từ đỉnh 0, kết duyệt đồ thị theo chiều sâu là: b) Bắt đầu từ đỉnh 1, kết duyệt đồ thị theo chiều rộng là: Lưu ý: trường hợp nhiều đỉnh chọn, đỉnh đưa vào Stack (hoặc Queue) theo thứ tự bảng chữ PHẦN III: THIẾT KẾ GIẢI THUẬT (3.0 điểm) Thiết kế hàm Partition cho giải thuật Quick sort (1.0 điểm) Trong giải thuật Quick sort, việc lựa chọn phần tử lề (pivot) có ảnh hưởng đến hiệu giải thuật, phần tử lề không thiết phải phần tử dãy Một lựa chọn khác chọn giá trị trung bình (hoặc gần với giá trị trung bình nhất) phần tử dãy làm phần tử lề Hãy viết hàm Partion thực việc lựa chọn Yêu cầu: - Hàm Partition có prototype: int Partition(int arr[],int l,int h) - Sinh viên nêu ý tưởng giải thuật - Sinh viên dùng mã giả ngơn ngữ C/C++ để viết Phán đốn đồ thị có tồn đường từ đỉnh A đến đỉnh B (2.0 điểm) Giả sử đồ thị có hướng lưu dạng danh sách kề định nghĩa sau: GraphNode vertex // (key field) adjVertex> indegree outdegree isMarked Trang 5/4 Mã đề: 1001 Môn thi: Cấu trúc liệu giải thuật End GraphNode DiGraph digraph