1. Trang chủ
  2. » Tất cả

Đề thi môn cấu trúc dữ liệu và giải thuật final solution

5 0 0

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

THÔNG TIN TÀI LIỆU

Nội dung

Đề thi cuối kỳ HK1/2009 Môn Cấu trúc dữ liệu và Giải thuật Thời gian 120 phút (Không sử dụng tài liệu) Ghi chú đề thi gồm tất cả 7 câu Sinh viên lớp KSTN làm hết 7 câu, thang điểm 11 (sẽ được chuyển t[.]

Trường ĐH Bách Khoa Tp.HCM Khoa KH&KT Máy tính ĐÁP ÁN Đề thi cuối kỳ HK1/2009 Môn: Cấu trúc liệu Giải thuật Thời gian: 120 phút (Không sử dụng tài liệu) Ghi chú: đề thi gồm tất câu Sinh viên lớp KSTN làm hết câu, thang điểm 11 (sẽ chuyển thành thang điểm 10 tương ứng) Sinh viên lớp thường làm câu (từ câu đến câu 6), thang diểm 10 Câu (0.5 điểm): Cho biết giải thuật sau thực tốt xấu trường hợp nào? Số lần so sánh khóa xếp danh sách có N phần tử trường hợp đó? Tốt Xấu straight insertion sort Danh sách có thứ tự C=N-1 Danh sách có thứ tự ngược C=N(N-1)/2 straight selection sort Trong trường hợp nào: C=N(N-1)/2 Câu (1.5 điểm): Cho danh sách sau {13, 27, 8, 3, 21, 17, 32}, thực bước trình xếp danh sách giải thuật xếp cho hình vẽ Số lần so sánh khóa số lần đổi chỗ (swap) phần tử bao nhiêu? algorithm sort recursive_sort (0, count-1) end sort algorithm recursive_sort (val low , val high ) if (low < high) pivot_position = divide(low, high) recursive_sort (low, pivot_position-1) recursive_sort (pivot_position+1, high) end if end recursive_sort s l n T ng c ng algorithm divide (val low , val high ) pivot = datalow //dùng phần tử làm pivot last_small = low idx = low+1 loop (idxleft is not null) p=p->left end loop min=p->data p=subroot loop (p->right is not null) p=p->right end loop max=p->data end if end bst_min_max_aux b (1 điểm) Nhận vào giá trị chèn vào Nếu giá trị có tăng giá trị lên chèn vào chèn thành cơng Giả sử q trình tăng giá trị nói khơng làm tràn số (overflow) algorithm bst_insert_inc(val x ) call bst_insert_inc_aux(root, x) end bst_insert_inc algorithm bst_insert_inc_aux(ref subroot , val x ) if (subroot is null) allocate subroot subroot->data = x else if (subroot->data = x) bst_insert_inc_aux(subroot->right, x+1) else if (subroot->data > x) bst_insert_inc_aux(subroot->left, x) else bst_insert_inc_aux(subroot->right, x) end if end bst_insert_inc_aux c (2 điểm) Nhận vào BST chèn vào hành Việc chèn diễn theo nguyên tắc sau: - Nếu nhập rỗng kết khơng thay đổi - Nếu gắn nhập thành nhánh hành (hoặc hành rỗng) cho kết BST gắn chúng lại với Cây nhập trở thành phần kết quả, root nhập NULL - Nếu không gắn kết khơng thay đổi algorithm bst_insert_bst(ref tree ) if (tree.root is not null) call bst_min_max(input_root, min, max) call bst_insert_bst_aux(root, tree.root) end if end bst_insert_inc algorithm bst_insert_bst_aux(ref subroot , ref input_root , val , val max ) if (subroot is null) subroot = input_root input_root = null else if (subroot->data > max) bst_insert_bst_aux(subroot->left, input_root, min, max) else if (subroot->data < min) bst_insert_bst_aux(subroot->right, input_root, min, max) end if end bst_insert_bst_aux Câu (1.5 điểm): C Cho đồ thị hình bên, thực việc sau: B M G 11 12 23 2 A a Hãy cho biết thứ tự topo đồ thị H D J E (1) Breadth topo sort: A B E D F G C M H K J F C Hoặc (2) Depth topo sort: A E B D G M K F H J C B G 11 12 23 A M b Hãy bỏ toàn chiều đường (để biến đồ thị thành độ thị vơ hướng) tìm phủ tối thiểu đồ thị dùng giải thuật Prim 27 27 E D K H F K J Câu (1.5 điểm): Cho bảng băm (hash table) hình vẽ bên cạnh Hãy thêm vào bảng băm khóa sau đây: 12, 8, 25, 13, Ghi kết bảng băm sau giá trị thêm vào Biết rằng: (1) Hàm băm (hash function) dùng hàm sinh số ngẫu nhiên giả (pseudorandom) h(x) = (ax + c) mod size, a=17, c=7, size=13 Ví dụ: key = 121267 => address = h(121267) = (17*121267 + 7) mod 13 = (2) Phương pháp giải đụng độ phương pháp địa mở (open addressing) dùng cách dị tuyến tính (linear probing) Nghĩa ví trí cần thêm vào phần tử có phần tử khác chiếm dụng, vị trí (address + 1) xem xét key h(key) 12 25 13 Ban đầu Thêm 12 Thêm Thêm 25 Thêm 13 Thêm idx idx idx Data idx Data idx Data idx Data 8 8 Data Data 0 1 1 1 67 67 67 67 67 67 38 38 38 38 38 38 4 12 12 12 12 12 5 5 25 25 25 6 6 6 7 7 7 13 8 8 8 9 9 9 13 10 43 10 43 10 43 10 43 10 43 10 43 11 53 11 53 11 53 11 53 11 53 11 53 12 12 12 12 12 12 Câu (1 điểm): Cho danh sách số nguyên sau (45,79,81,1,18,6,17,49,61,47) Hãy xây dựng B-tree bậc (m=3) ứng với danh sách trên, giả sử phần tử thêm vào rỗng ban đầu theo thứ tự xuất danh sách Chú ý: cần trình bày kết Câu (1 điểm): (Dành riêng cho lớp KSTN) a Cho danh sách câu Hãy xây dựng B-tree bậc (m=5) ứng với danh sách 45 61 17 18 47 49 79 81 b Cho biết kết xoá phần tử 18 khỏi xây dựng câu câu 7a Biết phần tử bị xoá nằm nút trung gian, phần tử thay phần tử có giá trị lớn nằm bên trái nút Chú ý: cần trình bày kết 49 17 79 45 47 61 81 45 61 17 47 49 - Hết - 79 81 ... thành độ thị vô hướng) tìm phủ tối thi? ??u đồ thị dùng giải thuật Prim 27 27 E D K H F K J Câu (1.5 điểm): Cho bảng băm (hash table) hình vẽ bên cạnh Hãy thêm vào bảng băm khóa sau đây: 12, 8, 25,... p=p->right end loop max=p->data end if end bst_min_max_aux b (1 điểm) Nhận vào giá trị chèn vào Nếu giá trị có tăng giá trị lên chèn vào chèn thành công Giả sử trình tăng giá trị nói khơng làm tràn số...Câu (4 điểm): Dựa cấu trúc liệu nhị phân tìm kiếm (BST) cho hình bên cạnh, viết phương thức mã giả (pseudocode) làm việc

Ngày đăng: 25/03/2023, 08:37

w