Tải bản đầy đủ (.pdf) (2 trang)

Đề thi cấu trúc dữ liệu và giải thuật đại học bách khoa hà nội DSA exam mid 20132 01

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (808.55 KB, 2 trang )

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

DH 20132 - 01

***

Họ tên: ……………………………

ĐỀ THI MÔN: CẤU TRÚC DỮ LIỆU
VÀ GIẢI THUẬT

Lớp: …………………………………
SHSV: ……………………………….

Hà nội, .…. /….. / …...
Trưởng bộ môn

Ngày thi: …../…../….

Thời gian 90’

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

Bài 1.
a) Cho biểu thức trung tố sau
3 ∗ 𝑎 + 𝑏 − (𝑐 + 2)/2
Hãy xây dựng cây biểu thức tương ứng


b) Giả sử bạn có một câu nhị phân chỉ gồm có các nút trong có 2 con hoặc nút lá. Khi duyệt cây theo thứ
tự trước từ gốc ta sẽ ký hiệu là L nếu đi theo con trái và R nếu đi theo con phải.
Với thứ tự duyệt trước thu được của một cây là LLRLRR thì chiều cao của cây này là?
Bài 2. Một hãng điện thoại chuẩn bị tung ra thị trường mẫu điện thoại mới. Để đặt mua trước sản phẩm,
khách hàng có thể đăng ký trên website của công ty. Mỗi khách hàng chỉ được đăng ký tối đa 5 chiếc và
ai đăng ký trước sẽ được ưu tiên. Mã khách hàng đăng ký và số lượng đăng ký sẽ được lưu lại.
Khách hàng sau khi đăng ký có thể hủy đơn hàng nếu không còn yêu cầu nữa (đơn hàng chỉ được hủy
nếu trước ngày giao hàng ít nhất một ngày).
Trong quá trình sản xuất, nếu số lượng sản phẩm sản xuất không đủ số lượng yêu cầu thì chỉ những
người đầu tiên sẽ được nhận hàng và những người còn lại sẽ nhận được một email thông báo về việc
hết hàng.
Hãy mô tả cấu trúc dữ liệu mà bạn sử dụng để thực hiện các công việc trên.
Đánh giá thời gian thực hiện các thao tác thêm yêu cầu, hủy yêu cầu và thông báo email theo O-lớn.
Bài 3. Danh sách liên kết đơn chứa n số nguyên
struct Node
{
int data;
struct Node *pNext;
}

Hoàn thiện hàm sắp xếp lại danh sách sao cho các số âm được đẩy về cuối dãy và các số dương ở đầu
dãy. Hàm cần có thời gian thực hiện cỡ 𝑂(𝑛) và không được sử dụng thêm bộ nhớ phụ (ngoại trừ một
vài biến và con trỏ phụ)
void reorganize(struct Node **head)

1|Page


input


head
3

5

-4

7

1

-6

3

5

1

7

-4

-6

head
output

Bài 4. Cho tập hợp gồm n điểm đen và n điểm trắng cách đều nhau. Hãy mô tả thuật toán kết nối một điểm
đen với một điểm trắng sao cho tổng khoảng cách là nhỏ nhất.


Bài 5. Cho một ma trận mxn chứa toàn số 0 và 1. Hãy viết
hàm tìm và trả về nhóm số 1 được kết nối với nhau nhiều
nhất (các số chỉ được kết nối theo hàng và cột)
Bài 6. Cho một mảng chứa n số nguyên bất kỳ, hãy viết hàm
tìm và in ra màn hình dãy con tăng dài nhất.
Đánh giá theo 𝑂 lớn về thời gian thực hiện và bộ nhớ sử
dụng trong trường hợp tồi nhất.
void maxIncrementalSequence(int A[], int n)

1

1

0

1

1

1

0

0

0

0


0

0

0

1

1

0

0

0

0

0

1

1

1

1

0


0

0

0

0

0

1

0

0

1

0

0

0

1

1

0


0

0

0

1

1

1

1

1

0

0

0

1

1

1

Bài 7. Hãy xây dựng hàm tính 𝑥 𝑛 với (𝑛 ≥ 0, 𝑥 > 0) với thời gian cỡ 𝑂(log 𝑛)
Bài 8. Cây nhị phân

struct BNode
{
int data;
struct BNode *left,*right,*parent;
}

Viết hàm in ra các nút lá trên cây
struct void printLeaves(struct BNode *root)

2|Page



×