Bản quyền tài liệu thuộc về diễn đàn http://sinhviennganhang.com
Câu 1 : (3 điểm) Giả sử tồn tại cây nhị phân tìm kiếm (CNPTK) T trên bộ nhớ, có dữ liệu
của mỗi phần tử là 1 điểm trên mặt phẳng như sau:
CODE
struct point {
int x,y;
};
struct BSTree {
Node Root;
};
struct tagNode {
point data;
tagNode *Left, *Right;
};
typedef tagNode *Node;
Anh (chị) hãy :
a) Nhập vào một số thực a, tìm phần tử b của cây T mà b có x gần a nhất (dùng fasb để
lấy giá trị tuyệt đối của số thực).
b) Cho biết cặp điểm gần nhau nhất của cây T.
Câu 2 : (4 điểm)
Trên mặt phẳng Oxy có một hình vuông C, ta chia hình vuông C này thành 04 hình
vuông C1, C2, C3, C4. Trong mỗi hình vuông Ci (i = 1, 2, 3, 4) ta lại chia thành 04 hình
vuông nhỏ hơn mỗi hình vuông được tô màu xanh, đỏ, tím, vàng (theo thứ tự như hình
vẽ). Quá tình chia nhỏ kết thúc khi diện tích nhỏ hơn a (cho trước). Anh (chị) hãy xây
dựng cấu trúc dữ liệu động để lưu trữ các hình vuông và thuật toánđể xây dựng các hình
Bản quyền tài liệu thuộc về diễn đàn http://sinhviennganhang.com
vuông này.
CODE
___________________________
| | |
| | |
| Xanh | Đỏ |
| | |
| | |
|____________|_____________|
| | |
| | |
| Tím | Vàng |
| | |
| | |
|____________|_____________|
a) Hãy cho biết có bao nhiêu số lần phải chia.
b) Hãy cho biết có bao nhiêu hình vuông có diện tích nhỏ hơn b (cho trước).
Hết.
1. Cài đặt các giải thuật sắp xếp : nhị phân, Bubble sort, Select sort, Insert sort,
Heap sort, Quick sort.
2. Cài đặt thuật toán tìm kiếm nhị phân - Binary Search
3. Chương trình đổi cơ số, cài đặt bằng stack
4. Bài toán Josephus : có N người đã quyết định tự sát tập thể bằng cách đứng
trong vòng tròn và giết người thứ M quanh vòng tròn, thu hẹp hàng ngũ lại khi
Bản quyền tài liệu thuộc về diễn đàn http://sinhviennganhang.com
từng người lần lượt ngã khỏi vòng tròn. Vấn đề là tìm ra thứ tự từng người bị
giết
Ví dụ : N = 9, M = 5 thì thứ tự là 5, 1, 7, 4, 3, 6, 9, 2, 8
Hãy viết chương trình giải quyết bài toán Josephus
5. Chọn cấu trúc thích hợp để lưu trữ một đa thức với các hệ số khác 0, không
cần nhập theo thứ tự bậc. Viết chương trình tính tổng, tích của 2 đa thức, tìm
thương và phần dư trong phép chia 2 đa thức, tính đạo hàm của một đa thức.
(Có thể cho phép các hệ số là phân số)
6. Một danh sách sinh viên được tổ chức lưu trữ bằng cấu trúc danh sách liên kết,
một phần tử bao gồm các thành phần như sau
int MASO
char *HOTEN
float DIEMTOAN, DIEMVAN, DIEMLY
Viết các hàm thực hiện các chức năng sau:
Nhập xuất, ghi dữ liệu vào file, đọc dữ liệu từ file
Thêm, xoá một sinh viên.
Tìm kiếm sinh viên theo mã số, theo điểm trung bình
Sắp xếp sv theo mã số
Sắp xếp sv theo điểm từ cao xuống thấp, xếp loại, xếp hạng, loại giỏi ở
trên cùng rồi đến khá trung bình yếu
điểm trung bình
< 5.0 : Yếu
< =6.5 : Nếu có môn dưới 4 : Yếu, ngược lại Trung Bình
Bản quyền tài liệu thuộc về diễn đàn http://sinhviennganhang.com
< 8.0 : Nếu có môn <6.5 : Trung Bình, ngược lại Khá
>=8.0 : Nếu có môn <7 : Khá, ngược lại Giỏi
In ra màn mình danh sách SV : Mã số, Họ tên, các điểm(T,V,L), điểm
trung bình, loại, xếp hạng (cùng điểm TB, cùng loại thì cùng hạng) theo thứ tự
hạng tăng dần.
7. Một ma trận chứa rất ít phần tử với gía trị có nghĩa (tức phần tử khác 0) gọi là
ma trận thưa. Tìm cấu trúc dữ liệu biểu diễn ma trận thưa sao cho tiết kiệm
nhất (chỉ lưu trữ các phần tử có ý nghĩa. Viết chuong trình cho phép nhập, xuất
ma trận, cộng 2 ma trận
8. Giả sử có một dãy số lưu trong file như sau:
8 3 5 2 20 11 30 9 18 4.
Chuyển dữ liệu trong file vào cây nhị phân tìm kiếm
9. Giả sử phải xây dựng một chương trình soạn thảo văn bản, hãy chọn cấu trúc
dữ liệu thích hợp để lưu trữ văn bản trong quá trình soạn thảo. Biết rằng
- Số dòng văn bản không hạn chế
- Mỗi dòng văn bản có chiều dài tối đa 80 ký tự
- Các thao tác yêu cầu gồm:
Di chuyển trong văn bản (lên, xuống, qua trái, qua phải)
Thêm, xoá sửa ký tự trong một dòng
Thêm, xoá một dòng trong văn bản
Đánh dấu, sao chép khối
10. Viết các hàm xác định các thông tin của cây nhị phân T
(xét cách cài đặt đệ quy và không đệ quy)
Bản quyền tài liệu thuộc về diễn đàn http://sinhviennganhang.com
a. Số nút lá
b. Số nút có đúng 1 cây con
c. Số nút có đúng 2 cây con
d. Số nút có khóa nhỏ hơn x (giả sử T là CNPTK)
e. Số nút có khóa lớn hơn x (giả sử T là CNPTK)
f. Số nút có khóa lớn hơn x và nhỏ hơn y (T là CNPTK)
g. Chiều cao của cây
h. In ra tất cả các nút ở tầng (mức) thứ k của cây T
i. In ra tất cả các nút theo thứ tự từ tầng 0 đến tầng thứ h-1 của cây T (h
là chiều cao của T).
j. Kiểm tra xem T có phải là cây cân bằng hoàn toàn không
k. Tìm mức có nhiều nút lá nhất
l. Sao chép cây
m. Kiểm tra cây T1 có phải là con cây T không
CNPTK: cây nhị phân tìm kiếm.
Đề thimôn Cấu trúc dữ liệu
Thời gian 90 phút
Sinh viên được sử dụng tài liệu
Câu 1 (5 điểm)
Giả sử tồn tại cây nhị phân tìm kiếm T trong bộ nhớ, với data của 01 node là 01 số
nguyên có cấu trúc như sau:
CODE
struct Node{
int data;
Node *Left, *Right;
Bản quyền tài liệu thuộc về diễn đàn http://sinhviennganhang.com
};
typedef Node *BSNode;
2.
Anh chị hãy viết chương trình:
1. Đếm số node lá trong cây T (1 điểm)
2. Tạo 01 mảng a (các phần tử là các số nguyên) có số phần tử là số node lá của
cây T, mỗi phần tử mang giá trị là giá trị của các node là (2 điểm)
3. Tính trung bình tổng chiều dài đường đi từ gốc đến tất cả các node lá (2 điểm)
Câu 2 (5 điểm)
Anh chị hãy đề nghị xây dựng 01 cấu trúc dữ liệu (động) và các thủ tục để quản lý
các phần tử được mô tả như sau:
1. MỖi phần tử là một tam giác đều, được thể hiện qua toạ độ 03 đỉnh của tam
giác.
2.Từ 01 tam giác ta lấy toạ độ tâm của tam giác ta sẽ tạo được 03 tam giác mới có
quan hệ với tam giác cũ.
3. Việc phân chia sẽ hoàn tất khi khoảng cách từ tâm đến 01 đỉnh bất kì nhỏ hơn
epsilon cho trước.
4.Hãy cho biết có bao nhiêu tam giác được sinh ra khi phân chia như trên(với dữ
liệu là 01 tam giác có toạ độ xác định ban đầu)?
5. Diện tích tam giác nhỏ nhất là bao nhiêu?
6.Cho biết toạ độ các tam giác có diện tích nhỏ nhất?
7.Có bao nhiêu tam giác có diện tích nhỏ nhất?
Câu 1:
a)Định nghĩa cấu trúc dãy . Đua ra cấu trúc dữ liệu cho dãy số nguyên không quá 200
phần tử.
b) Nêu thuật toán và hàm xử lý :
+ Tính trung bình cộng của dãy.
+ Xuất ra các số nguyên tố trong dãy theo thứ tự tăng dần.
Câu 2 :
a) Nêu cấu trúc dữ liệu cho cây nhị phân tìm kiếm.
b) Viết thuật toán và hàm các xử lý trên cây :
+ Tìm phần tử nhỏ nhất.
+ Tìm phần tử x trong cây.
Câu 3 :
a) Đưa ra cấu trúc dữ liệu cho tập hợp và quan hệ 2 ngôi trên tập X.
b) Viết thuật toán và hàm xử lý kiểm tra tính phản xạ, đối xứng, bắc cầu, phản xứng.
Bản quyền tài liệu thuộc về diễn đàn http://sinhviennganhang.com
Đề thi cấu trúc dữ liệu
HK II 2005-2006 (06/2006)
Thời gian :90’
(Đc sử dụng tài liệu)
Câu 1:
Thực hiện các thao tác sau trên cây nhị phân tìm kiếm(vẽ hình từng bước):
- Tạo cây từ các số nguyên:22,14,15,28,34,1,17,27,29,21 (10 số)
- Xoá phần tử có giá trị 28
- Xoá nút gốc
Câu 2:
Giả sử tồn tại cây nhị phân tìm kiếm trong bộ nhớ máy tính. Hãy viết thủ tục hoặc
hàm tìm phần tử nhỏ nhất trên cây
Câu 3:
Trình bày cấu trúc dữ liệu thích hợp để biểu diễn cho các đa thức có nhiều hệ số bằng
không (không lưu trữ các số hạng có hệ số bằng không)
Viết thuật toán và hàm giải quyết các vấn đề sau:
- Cộng, trừ, nhân 2 đa thức
- Tính đạo hàm, tính tích phân 1 đa thức
- Xuất và nhập 1 đa thức
. dữ liệu cho dãy số nguyên không quá 200
phần tử.
b) Nêu thuật toán và hàm xử lý :
+ Tính trung bình cộng của dãy.
+ Xuất ra các số nguyên tố trong dãy. thuật toán và hàm xử lý kiểm tra tính phản xạ, đối xứng, bắc cầu, phản xứng.
Bản quyền tài liệu thuộc về diễn đàn http://sinhviennganhang.com
Đề thi