Đề thi học kỳ năm 2011 môn Cấu trúc dữ liệu và giải thuật (Mã đề 02) - Đại học Bách khoa Hà Nội

6 44 0
Đề thi học kỳ năm 2011 môn Cấu trúc dữ liệu và giải thuật (Mã đề 02) - Đại học Bách khoa Hà Nội

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

Thông tin tài liệu

Đề thi học kỳ năm 2011 môn Cấu trúc dữ liệu và giải thuật gồm 5 câu hỏi hệ thống lại kiến thức học phần và giúp các bạn sinh viên ôn tập kiến thức đã học, chuẩn bị cho kỳ thi sắp tới. Tài liệu hữu ích cho các các bạn sinh viên đang theo học và những ai quan tâm đến môn học này dùng làm tài liệu tham khảo.

Mã đề TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BỘ MÔN KHOA HỌC MÁY TÍNH Họ tên: …………………………… Lớp: ………………………………… SHSV: ……………………………… *** ĐỀ THI MÔN: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Ngày thi: … /… /… CD 2011 - 02 Hà nội, … /… / … Trưởng môn Thời gian 90’ (Sinh viên sử dụng tài liệu) Bài a) So sánh ưu nhược điểm lưu trữ nhị phân chiều cao ℎ dùng: (1) mảng, (2) cấu trúc liên kết (1 Điểm) struct BNode { DATA_TYPE data; //là kiểu liệu lưu trữ nút struct BNode * Lchild, *Rchild; //con trỏ tới trái phải } Theo tiêu chí: • • • Bộ nhớ, thời gian truy cập nút bất kỳ, tìm nút cha nút Biểu diễn nhị phân dùng mảng: dùng mảng có số lượng phần tử số lượng nút nhị phân đầy đủ chiều cao ℎ (số lượng phần tử mảng 2ℎ+1 − phần tử) 𝑖−1 Với nút thứ 𝑖 (𝑖 ≥ 0) nút 2𝑖 + 2𝑖 + 2, nút cha � � Biểu diễn nhị phân dùng cấu trúc liên kết: nút có thêm hai trỏ trỏ tới trái trỏ tới phải Tiêu chí Bộ nhớ Thời gian truy cập nút Biểu diễn dùng mảng Biểu diễn phần tử: không cần sử dụng thêm nhớ phụ Biểu diễn cho cây: cần nhớ 2ℎ+1 − cho nhị pahan chiều cao ℎ, nên lãng phí nhớ nhị phân khơng phải gần hồn chỉnh 𝑂(1) Vì mảng hỗ trợ truy cập ngẫu nhiên Tìm nút cha nút Thời gian 𝑂(1) Biểu diễn dùng cấu trúc liên kết Biểu diễn phần tử: Cần thêm nhớ phụ lưu trữ trỏ tới trái phải Biểu diễn cho cây: Cây có nút cấp phát động nhiêu nhớ Tiết kiệm nhớ dùng biểu diễn cho nhị phân 𝑂(ℎ) Cấu trúc liên kết không hỗ trợ truy cập ngẫu nhiên, ta phải truy cập thông qua nút tổ tiên nút Thời gian trung bình cỡ 𝑂(𝑛), ta phải duyệt từ gốc để tìm tới nút cha nút 1|Page CuuDuongThanCong.com https://fb.com/tailieudientucntt b) Đánh giá thời gian thực tồi hàm sau theo O-lớn (1 điểm) double fastPower(double x, int n) { double fract; if(n==0) return 1; fract = fastPower(x,n/2); } if(n%2==0) return fract* fract; else return fract*fract*x; Hàm cài đặt đệ quy, lời gọi đệ quy fract = fastPower(x,n/2); Được gọi lần hàm, ta có cơng thức đệ quy tổng quát 𝑛 𝑛ế𝑢 𝑛 = 𝑇(𝑛) = �𝑇�𝑛 � + 𝑛ế𝑢 𝑛 > �2 Ta viết gọn lại 𝑇(𝑛) = 𝑇 � � + Áp dụng định lý thợ với 𝑎 = 1, 𝑏 = 𝑓(𝑛) = 𝑛log𝑏 𝑎 = 𝑛log2 =  trường hợp định lý thợ Vậy kết luận 𝑇(𝑛) = 𝜃(log 𝑛) c) So sánh ưu nhược điểm phương pháp tổ chức tìm kiếm dùng mảng áp dụng thuật tốn tìm kiếm nhị phân, nhị phân tìm kiếm dùng bảng băm theo tiêu chí sau (1 Điểm) Tiêu chí Bộ nhớ dùng lưu trữ phần tử Tìm kiếm nhị phân 𝑂(𝑛) Tỉ lệ với số phần tử, nhiên phần tử lưu trữ thêm liệu thừa Thời gian tìm kiếm Thêm phần tử Xoá phần tử In danh sách phần tử có 𝑂(log 𝑛) 𝑂(𝑛) 𝑂(𝑛) 𝑂(𝑛) Cây nhị phân tìm kiếm 𝑂(𝑛) Tỉ lệ với số phần tử, nhiên phần tử phải lưu trữ thêm liệu thừa (2 trỏ) 𝑂(log 𝑛) 𝑂(log 𝑛) 𝑂(log 𝑛) 𝑂(𝑛) Bảng băm Số lượng ô nhớ xác định trước, kích thước bảng băm (thường lớn số lượng phần tử cần lưu nhiều lần) 𝑂(1) 𝑂(1) 𝑂(1) Không hỗ trợ thao tác này, muốn in ta phải duyệt toàn bảng băm Bài a) Biểu thức dạng hậu tố gì? Ưu điểm biểu thức dạng hậu tố? (1 Điểm) Biểu thức dạng hậu tố: Là cách biểu diễn biểu thức tồn tử đứng sau tốn hạng mà tác động Ví dụ: + a – Ưu điểm biểu thức dạng hậu tố có cách định giá (cách tính) Khơng biểu thức dạng trung tố cần quy định thêm độ ưu tiên toán tử, dấu ngoặc Biểu thức dạng hậu tố dùng để biểu diễn biểu thức máy tính b) Định giá biểu thức dạng hậu tố sau (trình bày rõ trạng thái trung gian STACK (1 Điểm) 2|Page CuuDuongThanCong.com https://fb.com/tailieudientucntt Gặp 10 + / ^ 12 % + 10 + / ^ 12 − % + STACK 10 10, 10, 2, 10, 2, 4, 4, 4, 12 4, 4, 12, 4, 4, 4, Ghi Gặp toán hạng  đẩy vào stack Đỉnh stack bên phải Thực 2+3 Thực 10/5 Thực 2^2 (22 ) Thực 12-8 Thực %4 Thực + Kết cuối c) Vẽ biểu thức biểu diễn cho biểu thức phần b (không cần phải trình bày bước trung gian) (1 Điểm) Bài a) Cho nhị phân tìm kiếm ban đầu hình thêm dãy khóa 33, 43, 12, 36, 78, 29, 16, 9, 65, 27, 32 Hãy vẽ nhị phân kết thu cuối (khơng cần trình bày bước trung gian) (1 Điểm) 3|Page CuuDuongThanCong.com https://fb.com/tailieudientucntt b) Với nhị phân tìm kiếm thu phần a, thực xóa khóa 18 33 Hãy vẽ kết thu sau lần xóa Chú ý: chọn nút thay nút phải trái (1 Điểm) Bài Cho đơn đồ thị vô hướng 𝐺(𝑉, 𝐸) sau 𝑉 = {𝐴, 𝐵, 𝐶, 𝐷, 𝐸, 𝐹, 𝐺, 𝐻} 𝐸 = {(𝐴, 𝐵), (𝐴, 𝐶), (𝐴, 𝐸), (𝐵, 𝐸), (𝐵, 𝐺), (𝐶, 𝐷), (𝐶, 𝐵), (𝐷, 𝐸), (𝐹, 𝐷), (𝐹, 𝐸), (𝐹, 𝐺), (𝐻, 𝐵), (𝐻, 𝐺)} a) Hãy biểu diễn đồ thị dùng danh sách kề (1 Điểm) 4|Page CuuDuongThanCong.com https://fb.com/tailieudientucntt b) Thực BFS từ đỉnh B, đưa thứ tự đỉnh thăm (1 Điểm) (Chỉ cần vẽ hình trạng hàng đợi khung BFS đủ điểm) STT QUEUE B A, C, E, G, H C, E, G, H E, G, H, D G, H, D, F H, D, F D, F F ∅ Ghi Lấy B ra, đưa đỉnh kề với B mà chưa thăm vào QUEUE Cây khung BFS từ B c) Hãy đưa loại cạnh thu BFS đỉnh B (BackEdge, CrossEdge, TreeEdge ForwardEdge) Lưu ý: Các đỉnh đồ thị thăm theo thứ tự ABC (1 Điểm) 5|Page CuuDuongThanCong.com https://fb.com/tailieudientucntt Phân loại cạnh Cạnh Tree-Edge Cạnh ngược Back-edge Cạnh tới Forward-Edge Cạnh vòng Cross-Edge BA,BV,BE,BG,BH,CD,EF AC, AE, ED, GF, GH, DF Bài Để biểu diễn tập hợp số nguyên ta dùng danh sách liên kết đơn với cấu trúc phần tử khai báo sau: typedef struct Node { int data; struct node *pNext; } NODE; a) Hãy xây dựng hàm tìm trả giá trị phần tử chẵn lớn tập hợp trường hợp biết phần tử tập hợp xếp theo thứ tự tăng dần giá trị (1 Điểm) int FindMax (NODE *pHead) { } b) Hãy đánh giá thời gian thực trường hợp tồi hàm bạn viết theo O-lớn (0.5 điểm) int FindMax (NODE *pHead) { NODE *ptr = pHead; int i= 0; //biến để đếm vị trí phần tử int pos=-1; while(ptr!=NULL) { if(ptr->data%2==0) { pos = i; } ptr = ptr->pNext; i++; } return pos; } Dễ thấy thời gian thực thuật toán trường hợp tồi cỡ 𝑂(𝑛) Tổng điểm 12.5 Điểm 6|Page CuuDuongThanCong.com https://fb.com/tailieudientucntt ... Tree-Edge Cạnh ngược Back-edge Cạnh tới Forward-Edge Cạnh vòng Cross-Edge BA,BV,BE,BG,BH,CD,EF AC, AE, ED, GF, GH, DF Bài Để biểu diễn tập hợp số nguyên ta dùng danh sách liên kết đơn với cấu trúc. .. thực trường hợp tồi hàm bạn viết theo O-lớn (0.5 điểm) int FindMax (NODE *pHead) { NODE *ptr = pHead; int i= 0; //biến để đếm vị trí phần tử int pos =-1 ; while(ptr!=NULL) { if(ptr->data%2==0) { pos... tồi hàm sau theo O-lớn (1 điểm) double fastPower(double x, int n) { double fract; if(n==0) return 1; fract = fastPower(x,n/2); } if(n%2==0) return fract* fract; else return fract*fract*x; Hàm

Ngày đăng: 05/11/2020, 10:40

Từ khóa liên quan

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

Tài liệu liên quan