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

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

4 1 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 474,02 KB

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA TP Sinh viên PHẢI nộp lại đề thi MSSV Họ tên Đề 0001 Trang 1/4 15 20 Đại học Quốc Gia TP Hồ Chí Minh Trường đại học Bách Khoa Khoa Khoa học & Kỹ thuật Máy tính Bộ môn Khoa học[.]

Sinh viên PHẢI nộp lại đề thi MSSV: Họ tên: Đại học Quốc Gia TP Hồ Chí Minh Trường đại học Bách Khoa Khoa: Khoa học & Kỹ thuật Máy tính Bộ mơn: Khoa học Máy tính ĐỀ THI CUỐI HỌC KỲ Năm học: 2012 – 2013 Môn: Cấu trúc liệu & Giải thuật MSMH: 503001 Ngày thi: 04/01/2013 - Thời gian: 110 phút (Được sử dụng tài liệu) Mã đề thi: 0001 PHẦN I: TRẮC NGHIỆM (2.0 điểm) (để trọn điểm sinh viên cần làm câu) 1) Cho nhị phân có nút A, B, C, D, A.V1,V3,V4,V6,V2,V5,V7 E, F, G Duyệt tiền thứ tự (PreOrder) B.V1,V3,V2,V6,V4,V5,V7 nhị phân ta có ABCDEFG Khi duyệt C.V1,V3,V4,V5,V2,V6,V7 theo trung thứ tự (InOrder), kết D.V1,V2,V5,V3,V4,V6,V7 A CABDEFG B.ABCDEFG 5) Giải thuật có độ phức tạp C.DACEFBG D.ADCFEG khơng gian lớn nhất: 2) Biết duyệt tiền thứ tự duyệt hậu A Nổi bọt (bubble sort) thứ tự nhị phân cho kết ngược B Quick sort (Ví dụ, duyệt tiền thứ tự ABCD, C Heap sort duyệt hậu thứ tự DCBA), nhận định D Shell sort sau A Cây nhị phân rỗng có 6) Giả sử ta muốn xếp dãy số theo thứ tự nút tăng dần Trong trường hợp dãy số đầu vào B Bất nút khơng có bên có thứ tự tăng dần giải thuật chọn trực tiếp trái (Straight Selection Sort) có độ phức tạp là: C Cây có chiều cao tổng số nút A O(n) B O(nlog2n) D Bất nút khơng có bên C O(n ) D O(n1.25) phải 7) Giả sử ta muốn xếp dãy số theo thứ tự 3) Cho AVL sau: tăng dần Trong trường hợp dãy số đầu vào 15 có thứ tự tăng dần giải thuật sau có độ phức tạp O(n) 20 A Chèn trực tiếp (Straight Insertion) B Chọn trực tiếp (Straight Selection) Khi chèn thêm nút có giá trị 19, cần phải C Nổi bọt A Thực phép quay đơn bên trái D.A C B Thực phép quay kép C Thực phép quay đơn bên phải 8) Giả sử ta dùng mảng để biểu diễn heap, D Không cần thực phép quay cho biết dãy số đây, dãy KHÔNG phải biểu diễn heap: 4)Cho đồ thị có hướng G = (V, E) với A 100, 85, 98, 77, 80, 60, 82, 40, 20, 10, 66 V={V1,V2,V3,V4,V5,V6,V7} E={, B 100, 98, 85, 82, 80, 77, 66, 60, 40, 20, 10 ,,,, C 100, 85, 40, 77, 80, 60, 66, 98, 82, 10, 20 ,, , }, thứ D 10, 20, 40, 60, 66, 77, 80, 82, 85, 98, 100 tự Topo đồ thị Đề 0001 Trang 1/4 Sinh viên PHẢI nộp lại đề thi MSSV: Họ tên: 9) Nhận định heap KHÔNG ĐÚNG A Heap nhị phân cân B d-heap thích hợp cho ứng dụng mà số lượng thao tác chèn phần tử vào heap lớn nhiều so với số lượng thao tác xóa C Heap nhị phân nhị phân đầy đủ gần đầy đủ D Trong max-heap với n phần tử (n >= 2), phần tử nhỏ nằm nút 10) Để nâng cao hiệu tìm kiếm bảng hash, sử dụng biện pháp sau a) Tăng hệ số tải  (load factor) b) Thiết kế hàm hash cho giảm xung đột c) Khi xử lý xung đột cần phải tránh tượng gom cụm A a) B b) C a) b) D b) c) PHẦN II: ĐIỀN CHỖ TRỐNG (4.0 điểm) 1) Tiến hành đánh số cho nút nhị phân đầy đủ theo thứ tự từ xuống từ trái 2i |_i/2_| qua phải, bên trái nút thứ i nút , nút cha nút thứ i nút |_log2n_|+1 2) Một nhị phân có 2000 nút, chiều cao 3) Cho AVL hình vẽ 19 22 13 12 15 Hãy vẽ AVL sau chèn thêm 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) 4) Cho AVL hình vẽ: 15 19 12 30 Hãy vẽ AVL sau xóa nút có giá trị 19 (chỉ cần vẽ kết cuối cùng, không cần vẽ bước trung gian) 5) Cho đồ thị hình vẽ sau: A D B G E C F ABGFDEC a) Bắt đầu từ đỉnh A, kết duyệt đồ thị theo chiều sâu _ EACFBDG b) Bắt đầu từ đỉnh E, kết duyệt đồ thị theo chiều rộng _ Đề 0001 Trang 2/4 Sinh viên PHẢI nộp lại đề thi MSSV: Họ tên: c) 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 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ữ 6) Cho dãy từ khóa B = {12, 23, 45, 57, 20, 3, 78, 31, 15, 36}, giả sử bảng hash có khơng gian địa H[0 12], hàm hash H(key)= key % 13, đồ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 15 78 57 45 20 31 23 36 12 7) Cho bảng hash hình vẽ : 35 20 33 48 59 10 11 12 Biết hàm hash H(key)= key % 13, xử lý xung đột phương pháp hash kép (double hashing) với HP(k, i) = (H(k) + iH1(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 1 8) Giả sử ta biểu diễn max-heap dạng dãy, ta có max-heap (36, 23, 31, 19, 20, 3, 2, 6, 13, 12) Hãy cho biết max-heap sau chèn thêm vào max-heap phần tử có giá trị 30 36 30 31 19 23 13 12 20 9) Giả sử ta biểu diễn max-heap dạng dãy, ta có max-heap (36, 23, 31, 19, 20, 3, 2, 6, 13, 12) Hãy viết max-heap dạng dãy sau bỏ phần tử lớn 31 23 12 19 20 13 10) Xây dựng B-tree tương ứng với dãy số (36, 23, 31, 19, 20, 3, 2, 6, 13, 12), với số bậc Giả sử thứ tự phần tử đưa vào tương ứng với thứ tự dãy 11) Cho biết kết B-Tree sau xóa phần tử 20 khỏi B-Tree tương ứng với dãy số (36, 23, 31, 19, 20, 3, 2, 6, 13, 12), với số bậc PHẦN III: ĐỌC HIỂU GIẢI THUẬT (1 điểm) 1) Nút nhị phân định nghĩa sau: CBEDFAGH struct node { char data; node* lchild, *rchild; }; Cho giải thuật sau: void f31(BinTree* T) { InitStack(S); //S ngăn xếp while (T || !StackEmpty(S){ while (T){ Push(S,T); T=T->lchild; } if (!StackEmpty(S)) { T=Pop(S); printf(“%c”,T->data); T=T->rchild; } Đề 0001 Trang 3/4 Sinh viên PHẢI nộp lại đề thi MSSV: Họ tên: } } Biết T vào gốc nhị phân hình vẽ bên Hãy cho biết kết xuất hình lời gọi hàm f31(T) PHẦN IV: THIẾT KẾ GIẢI THUẬT (3 điểm) 1) Trong class heap (dùng để thực min-heap định nghĩa bên dưới), thực hàm remove(int d) dùng để xóa phần tử có giá trị d, kết trả cấu trúc thỏa mãn tính chất min-heap Class heap private: data: array count: int protected: reHeapUp(position) reHeapDown(position, lastPosition) public: insertHeap(element) deleteHeap() End class 2) (Dành cho lớp thường) Cho ma trận liền kề M(nxn)biểu diễn đồ thị có hướng G Hãy thực hàm isCyclic(int ** M) dùng để xác định đồ thị G có chứa chu trình khơng Lưu ý: điểm thưởng cho sinh viên đề xuất giải pháp có độ phức tạp trường hợp xấu tối đa O(n) (sinh viên cần chứng minh điều này) Phần dành cho lớp KSTN: 1) Hãy thực hàm sau để trả phần tử trung vị (median) dãy nhập vào thông số //arr: dãy nhập vào, không số thứ tự, heap //num: số phần tử dãy int median(int* arr, int num){ //Viết code } Yêu cầu: sử dụng heap để thực giải thuật Tự viết lại tất code liên quan đến heap 2) Cho đồ thị vô hướng Hãy thực hàm sau để trả số thành phần liên thơng đồ thị Sinh viên tuỳ chọn cách biểu diễn đồ thị: dạng ma trận kề hay danh sách kề Tất hàm đồ thị (như giảng), sinh viên xem thực trước //graph: graph đưa vào int countDisjointComp(UDGraph* &graph){ //Viết code } HẾT Đề 0001 Trang 4/4 ... chiều rộng _ Đề 0001 Trang 2/4 Sinh viên PHẢI nộp lại đề thi MSSV: Họ tên: c) 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 Lưu ý: trường... T=T->rchild; } Đề 0001 Trang 3/4 Sinh viên PHẢI nộp lại đề thi MSSV: Họ tên: } } Biết T vào gốc nhị phân hình vẽ bên Hãy cho biết kết xuất hình lời gọi hàm f31(T) PHẦN IV: THI? ??T KẾ GIẢI THUẬT... tử đưa vào tương ứng với thứ tự dãy 11) Cho biết kết B-Tree sau xóa phần tử 20 khỏi B-Tree tương ứng với dãy số (36, 23, 31, 19, 20, 3, 2, 6, 13, 12), với số bậc PHẦN III: ĐỌC HIỂU GIẢI THUẬT

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

w