1. Trang chủ
  2. » Công Nghệ Thông Tin

Đáp Án và Đề thi cuối kì học kỳ 2 – năm học 2021 2022 môn thi cấu trúc dữ liệu và giải thuật

38 1 0
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đáp Án Và Đề Thi Cuối Kì Học Kỳ 2 – Năm Học 2021 2022 Môn Thi Cấu Trúc Dữ Liệu Và Giải Thuật
Trường học Khoa Khoa Học Máy Tính
Chuyên ngành Cấu Trúc Dữ Liệu Và Giải Thuật
Thể loại Đề thi
Năm xuất bản 2021 - 2022
Định dạng
Số trang 38
Dung lượng 253,58 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Vẽ cây nhị phân tìm kiếm bằng cách thêm lần lượttừng ký tự vào cây theo thứ tự từ trái qua phải của dãy ký tự trên, biết rằng giá trịcủa từng ký tự tương ứng theo thứ tự xuất hiện của ký

Trang 1

KHOA KHOA HỌC MÁY TÍNH

ĐỀ THI CUỐI KỲ

HỌC KỲ 2 – NĂM HỌC 2021 – 2022

Môn thi: CTDL & GT

Mã lớp: Các lớp đại trà, chất lượng cao

Thời gian làm bài: 90 phút

(Sinh viên không được sử dụng tài liệu)

Cho dãy ký tự như sau: F, D, B, A, C, E, H, G, I

Hãy thực hiện các yêu cầu sau:

Trang 2

a Vẽ cây nhị phân tìm kiếm bằng cách thêm lần lượttừng ký tự vào cây theo thứ

tự từ trái qua phải của dãy ký tự trên, biết rằng giá trịcủa từng ký tự tương ứng

theo thứ tự xuất hiện của ký tự trong từ điển (1 điểm)

b Cho biết kết qủa duyệt cây theo RNL, NRL (0.5điểm)

c Huỷ lần lượt từng nút D, E, F, H trên cây, mỗi lầnhuỷ 1 nút vẽ lại cây nối tiếp

theo như thứ tự huỷ (1 điểm)

d Viết hàm đếm số lượng nút có một nút con trên cây,nếu cây rỗng thì in ra giá

trị -1 (1 điểm)

Trang 3

• Tất cả các node có *tối đa* 3 con

• Tất cả các node, trừ node gốc , có từ 1 cho đến 2khóa (keys)

• Một node không phải lá và có n khóa thì phải có n+1node con

Hãy thực hiện các yêu cầu sau:

3.1Cho dãy số: 27, 19, 23, 9, 1, 3, 11, 21, 5, 13, 17,

15, 29, 25 Hỏi khi lần lượt thêm

các số trong dãy theo thứ tự từ trái qua phải vào mộtcây B-Tree bậc 3 rỗng thì:

a Các khóa nào khi thêm vào sẽ làm phát sinh thaotác split node? (0.5 điểm)

Trang 4

b Vẽ cây B-Tree trước và sau khi thêm các khóa trên.(1điểm)

3.2Cho cây B-Tree bậc 3 như hình sau:

Hãy lần lượt tiến hành xóa các khóa sau khỏi cây Tree: 11, 21, 13 và vẽ cây B

B-Tree trước sau khi xóa mỗi khóa trên (0.5 điểm)

Lưu ý khi xoá:

- Khi khóa cần xóa (gọi là x) không nằm ở node lá,chọn khóa thế mạng là khóa

khóa của node cha

- Khi có 02 lựa chọn node liền kể để thực hiệncatenation, ưu tiên chọn catenate

Trang 5

giữa node bị thiếu khóa với node liền trước

Câu 4: 2 điểm

Cho một bảng băm theo phương pháp thăm dò bậc 2

với hàm băm h(key) và hàm băm

lại (hay hàm thăm dò) prob(key, i) như sau:

h(key) = (key % M) prob(key, i) = (h(key) + i*i ) %

M

Trong đó:

- key là giá trị khóa

- i là một số nguyên cho biết lần thăm dò thứ i

Trang 6

a Trình bày từng bước việc thêm các khóa Key trong

danh sách bên dưới vào

bảng băm theo đúng thứ tự trong danh sách (1 điểm)

b Trình bày từng bước việc xóa giá trị Key=16 trong

bảng băm khi hoàn thành

yêu cầu ở câu a (0.5 điểm)

c Trình bày từng bước việc tìm giá trị Key=10 trong

bảng băm khi hoàn thành

yêu cầu ở câu b (0.5 điểm)

Trang 7

Câu 5: 1 điểm

Cho bài toán “Tô màu bản đồ” được đặt ra như sau:

Có một bản đồ các quốc gia trên

thế giới, ta muốn tô màu các quốc gia này sao cho hainước có cùng ranh giới được tô

khác màu nhau Yêu cầu tìm cách tô sao cho số màu

sử dụng là ít nhất Bài toán có

thể được mô hình hóa thành một bài toán trên đồ thị,khi đó mỗi nước trên bản đồ là một đỉnh của đồ thị,hai nước láng giềng tương ứng với hai đỉnh kề nhauđược nối với

nhau bằng một cạnh, bài toán trở thành: tô màu cácđỉnh của đồ thị sao cho mỗi đỉnh

chỉ được tô một màu, hai đỉnh kề nhau có màu khácnhau và số màu sử dụng là ít nhất

Giả sử cho thông tin đầu vào của bài toán được nhậpvào chương trình như sau:

Trang 8

Hãy thực hiện các yêu cầu sau:

a Xây dựng cấu trúc dữ liệu thích hợp để biểu diễn đồthị nhằm lưu trữ các thông

tin cần thiết trên bản đồ (0.5 điểm)

b Viết hàm nhập đồ thị (bằng cách nhập số cạnh vàdanh sách các cạnh như ví dụ

ở trên) và lưu trữ thông tin của đồ thị vào cấu trúc dữliệu đã đề xuất ở câu a

(0.5 điểm)

Hết

Trang 9

ĐÁP ÁN

CÂU 1

a Độ phức tạp của thuật toán

Selection sort theo định nghĩa Big-O

Độ phức tạp thời gian của thuật toán

Selection sort là O(n2)O(n2), trong đó nn là

số lượng phần tử trong mảng Điều này xảy

ra vì thuật toán phải thực hiện hai vòng lặplồng nhau:

Trang 10

b Hàm sắp xếp mảng 1 chiều giảm dần với thuật toán Selection sort

Dưới đây là hàm sắp xếp mảng giảm dần bằng thuật toán Selection sort:

#include <stdio.h>

void selectionSortDescending(int arr[], int n) {

for (int i = 0; i < n - 1; i++) {

Trang 11

// Hoán đổi phần tử lớn nhất với phần tử đầu tiêncủa mảng chưa sắp xếp

int temp = arr[i];

printf("Mang sau khi sap xep giam dan: ");

for (int i = 0; i < n; i++) {

Trang 12

Hoán đổi 10 với phần tử đầu tiên (5): [10, 8, 9, 5, 3, 6]

Trang 13

Bước 2:

Tìm phần tử lớn nhất trong mảng (từ chỉ số 1 đến 5): 9

Hoán đổi 9 với phần tử thứ hai (8): [10,

9, 8, 5, 3, 6]

Bước 3:

Tìm phần tử lớn nhất trong mảng (từ chỉ số 2 đến 5): 8

8 đã ở đúng vị trí: [10, 9, 8, 5, 3, 6]

Bước 4:

Tìm phần tử lớn nhất trong mảng (từ chỉ số 3 đến 5): 6

Hoán đổi 6 với phần tử thứ tư (5): [10,

9, 8, 6, 3, 5]

Trang 14

Bước 5

Tìm phần tử lớn nhất trong mảng (từ chỉ số 4 đến 5): 5

Hoán đổi 5 với phần tử thứ năm (3): [10, 9, 8, 6, 5, 3]

Kết quả cuối cùng: [10, 9, 8, 6, 5, 3]

Qua các bước trên, chúng ta có thể thấy rằng thuật toán Selection sort đã sắp xếp mảng giảm dần một cách chính xác

Trang 15

CÂU 2

a Vẽ cây nhị phân tìm kiếm

Chúng ta sẽ thêm các ký tự vào cây nhị phân tìm kiếm theo thứ tự từ trái qua

Trang 19

\

C

b Kết quả duyệt cây theo RNL, NRL

Duyệt cây theo RNL (Right, Node, Left):

Trang 20

Huỷ E: F

/ \

B H/ \ /

A G \

C

Huỷ F: G

/ \

B H/ \

A CHuỷ H: G

/

B

Trang 21

/ \

A C

d Hàm đếm số lượng nút có một nút con

Trang 22

Hàm count_one_child_nodes sẽ đếm số lượng nút có một nút con trên cây Nếu cây rỗng, nó sẽ trả về giá trị -1.

Trang 23

a Các khóa làm phát sinh thao tác split node

Split node xảy ra khi một node vượt quá số khóa

tối đa (2 khóa) Các khóa làm phát sinh split nodelà:

19: Khi thêm 19, node gốc bị split.

9: Khi thêm 9, node lá bị split.

3: Khi thêm 3, node lá bị split.

11: Khi thêm 11, node lá bị split.

5: Khi thêm 5, node lá bị split.

13: Khi thêm 13, node lá bị split.

17: Khi thêm 17, node lá bị split.

15: Khi thêm 15, node lá bị split.

29: Khi thêm 29, node lá bị split.

25: Khi thêm 25, node lá bị split.

b Vẽ cây B-Tree trước và sau khi thêm các khóa

Trước khi thêm: Cây rỗng.

Sau khi thêm:

Cây B-Tree sẽ có cấu trúc như sau:

[15]

/ \

Trang 26

Trang 27

CÂU 4

Trang 31

Kết luận:

Trang 32

Các khóa đã được thêm vào bảng băm theo phương pháp thăm dò bậc 2.

Trang 33

CÂU 5

a Xây dựng cấu trúc dữ liệu thích hợp

để biểu diễn đồ thị

Để biểu diễn đồ thị, chúng ta có thể sử

dụng danh sách kề (adjacency list)

Đây là cấu trúc dữ liệu phù hợp vì:

Mỗi đỉnh (quốc gia) sẽ lưu trữ danh

sách các đỉnh kề với nó (các quốc gia láng giềng)

Trang 34

Key: Tên đỉnh (tên quốc gia).

o o

"Viet_Nam": ["Lao", "Trung_Quoc"],

"Lao": ["Viet_Nam", "Thai_Lan"],

Trang 36

3.

Trang 37

Nhập số cạnh ee.

4.

5.

Với mỗi cạnh, nhập hai đỉnh uu và vv,

sau đó thêm chúng vào danh sách kề của nhau

"Viet_Nam": ["Lao", "Trung_Quoc"],

"Lao": ["Viet_Nam", "Thai_Lan"],

"Trung_Quoc": ["Viet_Nam", "Thai_Lan"],

Trang 38

"Thai_Lan": ["Lao", "Trung_Quoc",

Ngày đăng: 14/02/2025, 16:12

HÌNH ẢNH LIÊN QUAN

Bảng băm theo đúng thứ tự trong danh sách. (1 điểm) - Đáp Án và Đề thi cuối kì học kỳ 2 – năm học 2021 2022 môn thi cấu trúc dữ liệu và giải thuật
Bảng b ăm theo đúng thứ tự trong danh sách. (1 điểm) (Trang 6)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w