Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

ðỀ THI LÝ CẤU TRÚC DỮ LIỆU & GIẢI THUẬT – K53 VIỆT NHẬT

ðề số 1 - Thời gian làm bài 90 phút


(Không ñược sử dụng tài liệu)

Câu 1: Cho cấu trúc

typedef struct NodeStr


{
int info;
struct NodeStr *next /* Trỏ ñến phần từ kế tiếp */
} Node;

Cho danh sách ñịnh nghĩa bở cấu trúc trên, phần từ ñầu tiên ñược trỏ bởi list. Các phần tử
ñược ñánh số thứ tự từ 1 bắt ñầu từ list. Hãy viết hàm Node * Shuffle(Node * list)
nhận tham số ñầu vào là con trỏ list ñầu danh sách, tiến hành chuyển vị trí các nút có thứ tự
chẵn lên trước các nút có số thứ tự lẻ (giữ nguyên vị trí tương ñối của nút). Hảm này trả về con
trỏ ñầu danh sách list.

Câu 2: Cho cây nhị phân ñịnh nghĩa bởi cấu trúc

typedef struct TreeNode


{
int info;
struct NodeStr *left, *right /* Con trái và con phải */
} Tree;

ðường kính của một cây ñược ñịnh nghĩa là khoảng cách lớn nhất giữa 2 lá bất kỳ của cây ñó.
Khoảng cách ñược tính bằng số nút trên ñường ñi giữa 2 lá. ðường ñi này có thể qua gốc hoặc
không qua gốc (xem ví dụ).

2a. Viết hàm int (Tree * root) nhận tham số ñầu vào là con trỏ gốc của cây, và trả về
ñường kính của cây.
2b. Gọi T(n) là thời gian tính toán của thuật toán ở câu 2a (n là số nút của cây). Hãy ñánh giá
T(n).
Câu 3: Cho max-heap ñược biểu diễn bởi mảng {50, 40, 35, 31, 32, 24, 18, 30, 20, 8}

3a. Hãy vẽ cây nhị phân biểu diễn ñống trên.


3b. Trình bày phương pháp thực hiện chèn số 45 vào ñống trên.

Câu 4: Cho ñồ thị ñược biểu diễn bằng ma trận ñánh số từ 1 ñến 7

0 1 0 0 0 1 1
1 0 1 0 0 0 0
1 0 0 1 0 0 0
0 0 0 0 1 1 1
0 0 0 0 0 1 0
0 0 0 0 0 0 0
0 0 1 0 0 1 0

4a. Lập danh sách kề của ñồ thị trên


4.b Tiến hành tìm kiếm theo chiều sâu của ñồ thị. Hãy liệt kê các cạnh của ñồ thị, cạnh tới,
cạnh vòng.

Câu 5: Cho 2 mảng X, Y ñều có n phần từ và số nguyên k

5a. Hãy xây dựng thuật toán tìm các cặp x ∈ X và y ∈ Y sao cho x + y = k
5b. Xác ñịnh ñộ phức tạp của thuật toán trên

Lưu ý: ðiểm của bài 5 sẽ ñược tính vào tính ưu việt của thuật toán. Thuật toán trực tiếp sẽ ñược
rất ít ñiểm.

You might also like