Tải bản đầy đủ (.docx) (38 trang)

18 đề thi hết học phần môn cấu trúc dữ liệu và giải thuật

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 (147.12 KB, 38 trang )

ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 01
Đề thi gồm 02 trang - Sinh viên làm bài trong 60 phút
Phần 1. (Sinh viên trả lời bằng cách ghi ra kết quả mà khơng cần giải
thích gì thêm)
1. Viết các phần tử của mảng a[] = {-1, 10, -7, 5, 1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo th ứ tự tăng:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
2. Viết các phần tử của mảng a[] = {-11, 10, -7, 5, 15} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo th ứ tự gi ảm:
(i= 5)
(i= 4)
(i= 3)
(i= 2)
3. Viết các phần tử của mảng a[] = {11, 10, -7, 5, -1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo th ứ t ự giảm:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
4. Viết các phần tử của cây nhị phân AVL được tạo t ừ các nút có khóa là các
số nguyên 21, 10, 15, -5, -2, 25, 8, 1, -10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự giữa:
5. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 21, 10, 15, -5, -2, 25, 8, 1, -10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự trước:
6. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 21, 10, 15, -5, -2, 25, 8, 1, -10, 30 khi th ực hi ện phép duy ệt cây


theo thứ tự sau:
Phần 2. (Lập trình)
Viết chương trình tìm X = (x 1 , x 2 ,..,x n ) và giá trị f(X) của hàm
đạt giá trị lớn nhất. Trong đó
là các số nguyên dương, n ≤ 100
Dữ liệu vào n, c j , a j , b được cho trong file data.in theo khn dạng sau:


Dịng đầu tiên ghi lại số tự nhiên n và b. Hai số được ghi cách nhau
bởi một vài ký tự trống;




Dòng kế tiếp ghi lại n số c i (i=1, 2, .., n). Hai số được ghi cách nhau
bởi một vài ký tự trống;



Dịng cuối cùng ghi lại n số a i (i = 1, 2, ..,n). Hai số được ghi cách
nhau bởi một vài ký tự trống.

Giá trị tối ưu f(x 1 ,x 2 ,..,x n ) và phương án tối ưu X = (x 1 , x 2 ,..,x n ) tìm được
ghi ra màn hình theo khn dạng sau:


Dịng đầu tiên in ra giá trị tối ưu f(x 1 ,x 2 ,..,x n );




Dịng kế tiếp in ra phương án tối ưu X = (x 1 , x 2 ,..,x n ). Hai phần tử
khác nhau của X được ghi cách nhau bởi một vài khoảng trống.

Ví dụ:
Thang điểm:
Phần 1: 3 điểm
Phần 2: 5 điểm
Trả lời các câu hỏi của giám khảo: 2 điểm
--ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 02
Đề thi gồm 02 trang - Sinh viên làm bài trong 60 phút
Phần 1. (Sinh viên trả lời bằng cách ghi ra kết quả mà không c ần gi ải
thích gì thêm)
1. Viết các phần tử của mảng a[] = {15, -10, -7, -5, 21} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo th ứ t ự giảm:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
2. Viết các phần tử của mảng a[] = {11, 10, -7, 35, -1} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo th ứ tự tăng:
(i= 1)
(i= 2)
(i= 3)
(i= 4)


3. Viết các phần tử của mảng a[] = {-21, 17, -7, 5, -75} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo th ứ tự tăng:
(i= 5)

(i= 4)
(i= 3)
(i= 2)
4. Viết các phần tử của cây nhị phân AVL được tạo t ừ các nút có khóa là các
số nguyên 1, 51, 15, -5, -2, 2, 8, 11, 10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự sau:
5. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 1, 51, 15, -5, -2, 2, 8, 11, 10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự giữa:
6. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 1, 51, 15, -5, -2, 2, 8, 11, 10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự trước:
Phần 2. (Lập trình)
Cho dãy A[] gồm N số tự nhiên khác nhau và số tự nhiên K. Hãy viết
chương trình liệt kê tất cả các dãy con của dãy số A[] sao cho tổng các
phần tử trong dãy con đó đúng bằng K. Dữ liệu vào cho bởi file dayso.in
theo khn dạng sau:


Dịng đầu tiên ghi lại số tự nhiên N là số các số của dãy số A[] và s ố
tự nhiên K, hai số được viết cách nhau bởi một vài khoảng trống;



Dịng kế tiếp ghi lại N số của dãy số A[], hai số được viết cách nhau
một vài khoảng trống.

Các dãy con thoả mãn điều kiện tìm được ghi ra màn hình theo khn
dạng sau:



Mỗi dịng in ra một dãy con. Hai phần tử khác nhau c ủa dãy con đ ược
viết cách nhau bởi một vài khoảng trống.



Dịng cuối cùng in ra số các dãy con có tổng các ph ần t ử đúng b ằng K
tìm được;

Ví dụ:
Thang điểm:
Phần 1: 3 điểm
Phần 2: 5 điểm
Trả lời các câu hỏi của giám khảo: 2 điểm


ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 03
Đề thi gồm 02 trang - Sinh viên làm bài trong 60 phút
Phần 1. (Sinh viên trả lời bằng cách ghi ra kết quả mà khơng c ần gi ải
thích gì thêm)
1. Viết các phần tử của mảng a[] = {1, -10, -7, 5, -15} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo th ứ t ự tăng:
(i= 5)
(i= 4)
(i= 3)
(i= 2)
2. Viết các phần tử của mảng a[] = {17, -10, -7, 5, 31} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo th ứ t ự tăng:
(i= 1)

(i= 2)
(i= 3)
(i= 4)
3. Viết các phần tử của mảng a[] = {-11, 10, -7, 25, -21} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo th ứ tự gi ảm:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
4. Viết các phần tử của cây nhị phân AVL được tạo t ừ các nút có khóa là các
số nguyên 2, -10, 15, 5, -2, 25, 8, 18, 10, 3 khi th ực hi ện phép duy ệt cây
theo thứ tự giữa:
5. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 2, -10, 15, 5, -2, 25, 8, 18, 10, 3 khi th ực hi ện phép duy ệt cây
theo thứ tự sau:
6. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 2, -10, 15, 5, -2, 25, 8, 18, 10, 3 khi th ực hi ện phép duy ệt cây
theo thứ tự trước:
Phần 2. (Lập trình)
Cho dãy gồm n số tự nhiên phân biệt a 1 , a 2 , .., a n và s ố t ự nhiên B. Hãy
liệt kê tất cả các phần tử của tập
Dữ liệu vào cho bởi file data.in theo khuôn dạng như sau:




Dòng đầu tiên ghi lại hai số tự nhiên n và B. Hai số đ ược vi ết cách
nhau bởi một vài khoảng trống.




Dịng kế tiếp ghi lại n số nguyên dương a 1 , a 2 ,..,a n . Hai số khác
nhau được viết cách nhau bởi một vài kí tự trống.

Kết quả ghi ra màn hình theo khn dạng sau:


Mỗi dịng in ra một vector nhị phân x = (x 1 , x 2 ,.., x n ) là phần tử của
D. Hai thành phần khác nhau của vector x được viết cách nhau b ởi
một vài khoảng trống.



Dịng cuối cùng in ra số tự nhiên k là số phần t ử c ủa t ập D.

Ví dụ:
Thang điểm:
Phần 1: 3 điểm
Phần 2: 5 điểm
Trả lời các câu hỏi của giám khảo: 2 điểm
ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 04
Đề thi gồm 02 trang - Sinh viên làm bài trong 60 phút
Phần 1. (Sinh viên trả lời bằng cách ghi ra kết quả mà không c ần gi ải
thích gì thêm)
1. Viết các phần tử của mảng a[] = {-1, 10, -7, -5, -15} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo th ứ tự gi ảm:
(i= 5)
(i= 4)
(i= 3)

(i= 2)
2. Viết các phần tử của mảng a[] = {11, 1, -7, 5, -11} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo th ứ t ự tăng:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
3. Viết các phần tử của mảng a[] = {-1, 10, -7, 15, 21} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo th ứ t ự giảm:
(i= 1)
(i= 2)


(i= 3)
(i= 4)
4. Viết các phần tử của cây nhị phân AVL được tạo t ừ các nút có khóa là các
số nguyên 2, 17, 15, -5, -2, 25, 8, 1, 10, -30 khi th ực hi ện phép duy ệt cây
theo thứ tự giữa:
5. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 2, 17, 15, -5, -2, 25, 8, 1, 10, -30 khi th ực hi ện phép duy ệt cây
theo thứ tự trước:
6. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 2, 17, 15, -5, -2, 25, 8, 1, 10, -30 khi th ực hi ện phép duy ệt cây
theo thứ tự sau:
Phần 2. (Lập trình)
Cho file dữ liệu trungto.in gồm một dòng ghi lại một biểu th ức trung tố
gồm các toán hạng là các chữ cái thường và toán tử là các phép toán +, -, *, /
và ^.
Hãy sử dụng cấu trúc dữ liệu kiểu ngăn xếp viết chương trình chuy ển
biểu thức trung tố trong file trungto.in thành biểu thức hậu tố.

Biểu thức hậu tố tìm được được ghi ra màn hình sao cho các toán t ử và
toán hạng cách nhau một vài kí tự trống.
Ví dụ:
Thang điểm:
Phần 1: 3 điểm
Phần 2: 5 điểm
Trả lời các câu hỏi của giám khảo: 2 điểm
ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 05
Đề thi gồm 02 trang - Sinh viên làm bài trong 60 phút
Phần 1. (Sinh viên trả lời bằng cách ghi ra kết quả mà khơng c ần gi ải
thích gì thêm)
1. Viết các phần tử của mảng a[] = {-1, 0, -7, 5, 10} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo th ứ tự gi ảm:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
2. Viết các phần tử của mảng a[] = {-11, 1, -7, 5, -15} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo th ứ t ự tăng:
(i= 5)


(i= 4)
(i= 3)
(i= 2)
3. Viết các phần tử của mảng a[] = {1, 10, -7, 5, -1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo th ứ t ự giảm:
(i= 1)
(i= 2)

(i= 3)
(i= 4)
4. Viết các phần tử của cây nhị phân AVL được tạo t ừ các nút có khóa là các
số nguyên -1, 0, 15, -5, -2, 5, 8, 1, 10, 31 khi th ực hiện phép duy ệt cây theo
thứ tự trước:
5. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên -1, 0, 15, -5, -2, 5, 8, 1, 10, 31 khi th ực hiện phép duy ệt cây theo
thứ tự sau:
6. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên -1, 0, 15, -5, -2, 5, 8, 1, 10, 31 khi th ực hiện phép duy ệt cây theo
thứ tự giữa:
Phần 2. (Lập trình)
Cho file dữ liệu hauto.in gồm một dịng ghi lại m ột biểu th ức hau t ố bao
gồm các tốn hạng là các số tự nhiên khơng vượt q 10 3 , toán t ử là các
phép toán +, -, *, / và ^.
Hãy sử dụng cấu trúc dữ liệu kiểu ngăn xếp viết chương trình tính giá tr ị
biểu thức hậu tố trong file hauto.in. Giá trị của biểu thức h ậu tố tìm đ ược
được ghi ra màn hình.
Ví dụ:
Thang điểm:
Phần 1: 3 điểm
Phần 2: 5 điểm
Trả lời các câu hỏi của giám khảo: 2 điểm
ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 06
Đề thi gồm 02 trang - Sinh viên làm bài trong 60 phút
Phần 1. (Sinh viên trả lời bằng cách ghi ra kết quả mà khơng c ần gi ải
thích gì thêm)
1. Viết các phần tử của mảng a[] = {-1, 10, -7, 5, 5} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo th ứ tự tăng:

(i= 1)


(i= 2)
(i= 3)
(i= 4)
2. Viết các phần tử của mảng a[] = {-11, -10, -7, 5, 15} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo th ứ tự gi ảm:
(i= 5)
(i= 4)
(i= 3)
(i= 2)
3. Viết các phần tử của mảng a[] = {11, 10, -7, 15, -1} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo th ứ tự tăng:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
4. Viết các phần tử của cây nhị phân AVL được tạo t ừ các nút có khóa là các
số nguyên 2, 1, 15, -5, -2, 25, 8, 31, 10, 13 khi th ực hi ện phép duy ệt cây
theo thứ tự giữa:
5. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 2, 1, 15, -5, -2, 25, 8, 31, 10, 13 khi th ực hi ện phép duy ệt cây
theo thứ tự trước:
6. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 2, 1, 15, -5, -2, 25, 8, 31, 10, 13 khi th ực hi ện phép duy ệt cây
theo thứ tự sau:
Phần 2. (Lập trình)
Cho dãy gồm N số nguyên A[] = {a 1 , a 2 , .., a N } và số tự nhiên K ( K ≤ N ≤
100). Hãy viết chương trình liệt kê tất cả các dãy con K phần t ử gi ảm c ủa

dãy số A[].
Dữ liệu vào cho bởi file dayso.in theo khn dạng sau:


Dịng đầu tiên ghi lại hai số tự nhiên N, K. Hai số đ ược viết cách nhau
một vài khoảng trống;



Những dịng kế tiếp ghi lại N số nguyên của dãy số A[], hai số khác
nhau được viết cách nhau một vài khoảng trống.

Các dãy con K phần tử giảm dần của dãy số A[] tìm đ ược ghi ra màn hình
theo khn dạng:


Mỗi dịng in ra một dãy con. Hai phần tử khác nhau c ủa dãy con đ ược
viết cách nhau bởi một vài khoảng trống.




Dòng cuối in ra số tự nhiên M là số các dãy con K ph ần t ử gi ảm c ủa
dãy số A[] tìm được;

Ví dụ:
Thang điểm:
Phần 1: 3 điểm
Phần 2: 5 điểm
Trả lời các câu hỏi của giám khảo: 2 điểm

ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 07
Đề thi gồm 02 trang - Sinh viên làm bài trong 60 phút
Phần 1. (Sinh viên trả lời bằng cách ghi ra kết quả mà khơng c ần gi ải
thích gì thêm)
1. Viết các phần tử của mảng a[] = {-12, 10, -7, 5, 17} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo th ứ t ự giảm:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
2. Viết các phần tử của mảng a[] = {-11, 10, -17, 25, 15} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo th ứ tự tăng:
(i= 5)
(i= 4)
(i= 3)
(i= 2)
3. Viết các phần tử của mảng a[] = {11, 12, -7, -15, -1} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo th ứ tự gi ảm:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
4. Viết các phần tử của cây nhị phân AVL được tạo t ừ các nút có khóa là các
số nguyên -21, 10, 15, -5, -2, 25, 8, 1, -10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự trước:
5. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên -21, 10, 15, -5, -2, 25, 8, 1, -10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự giữa:
6. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các



số nguyên -21, 10, 15, -5, -2, 25, 8, 1, -10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự sau:
Phần 2. (Lập trình)
Viết chương trình tìm X = (x 1 , x 2 ,..,x n ) và giá trị f(X) của hàm
đạt giá trị nhỏ nhất. Trong đó,
là các số nguyên, n, b là các số tự nhiên, n ≤ 100.
Dữ liệu vào n, c j , a j , b được cho trong file data.in theo khn dạng sau:


Dịng đầu tiên ghi lại số tự nhiên n và b. Hai số được ghi cách nhau
bởi một vài ký tự trống;



Dịng kế tiếp ghi lại n số nguyên c i (i=1, 2, .., n). Hai số được ghi cách
nhau bởi một vài ký tự trống;



Dịng cuối cùng ghi lại n số nguyên a i (i = 1, 2, ..,n). Hai số được ghi
cách nhau bởi một vài ký tự trống.

Giá trị tối ưu f(x 1 ,x 2 ,..,x n ) và phương án tối ưu X = (x 1 , x 2 ,..,x n ) tìm được
ghi ra màn hình theo khn dạng sau:


Dịng đầu tiên in ra giá trị nhỏ nhất f(x 1 ,x 2 ,..,x n );




Dịng kế tiếp in ra phương án tối ưu tương ứng X = (x 1 , x 2 ,..,x n ).
Hai phần tử khác nhau của X được ghi cách nhau bởi m ột vài khoảng
trống.

Ví dụ:
Thang điểm:
Phần 1: 3 điểm
Phần 2: 5 điểm
Trả lời các câu hỏi của giám khảo: 2 điểm
ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 08
Đề thi gồm 02 trang - Sinh viên làm bài trong 60 phút


Phần 1. (Sinh viên trả lời bằng cách ghi ra kết quả mà khơng c ần gi ải
thích gì thêm)
1. Viết các phần tử của mảng a[] = {-2, 10, -7, 25, 1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo th ứ tự tăng:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
2. Viết các phần tử của mảng a[] = {-1, 0, 7, 5, 1} t ại m ỗi giai đo ạn i khi áp
dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo thứ tự giảm:
(i= 5)
(i= 4)
(i= 3)
(i= 2)

3. Viết các phần tử của mảng a[] = {3, 10, -7, 5, -1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo th ứ t ự giảm:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
4. Viết các phần tử của cây nhị phân AVL được tạo t ừ các nút có khóa là các
số nguyên -1, 10, 15, -5, -2, 25, 8, 1, -10, 50 khi th ực hi ện phép duy ệt cây
theo thứ tự sau:
5. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên -1, 10, 15, -5, -2, 25, 8, 1, -10, 50 khi th ực hi ện phép duy ệt cây
theo thứ tự trước:
6. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên -1, 10, 15, -5, -2, 25, 8, 1, -10, 50 khi th ực hi ện phép duy ệt cây
theo thứ tự giữa:
Phần 2. (Lập trình)
Cho dãy gồm N số nguyên A[] = {a 1 , a 2 , .., a N } và số tự nhiên K ( K ≤ N ≤
100). Hãy viết chương trình liệt kê tất cả các dãy con K phần t ử tăng c ủa
dãy số A[].
Dữ liệu vào cho bởi file dayso.in theo khn dạng sau:


Dịng đầu tiên ghi lại hai số tự nhiên N, K. Hai số đ ược viết cách nhau
một vài khoảng trống;



Những dòng kế tiếp ghi lại N số nguyên của dãy số A[], hai số khác
nhau được viết cách nhau một vài khoảng trống.



Các dãy con K phần tử tăng dần của dãy số A[] tìm đ ược ghi ra màn hình
theo khn dạng:


Mỗi dịng in ra một dãy con. Hai phần tử khác nhau c ủa dãy con đ ược
viết cách nhau bởi một vài khoảng trống.



Dịng cuối in ra số tự nhiên M là số các dãy con K ph ần t ử tăng d ần
của dãy số A[] tìm được;

Ví dụ:

Thang điểm:
Phần 1: 3 điểm
Phần 2: 5 điểm
Trả lời các câu hỏi của giám khảo: 2 điểm
ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 09
Đề thi gồm 02 trang - Sinh viên làm bài trong 60 phút
Phần 1. (Sinh viên trả lời bằng cách ghi ra kết quả mà không c ần gi ải
thích gì thêm)
1. Viết các phần tử của mảng a[] = {-1, 10, -7, 5, -1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo th ứ tự tăng:
(i= 1)
(i= 2)
(i= 3)
(i= 4)

2. Viết các phần tử của mảng a[] = {-7, 10, -7, 5, 15} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo th ứ t ự giảm:
(i= 5)
(i= 4)
(i= 3)
(i= 2)
3. Viết các phần tử của mảng a[] = {1, 10, -7, 5, -1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo th ứ t ự tăng:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
4. Viết các phần tử của cây nhị phân AVL được tạo t ừ các nút có khóa là các


số nguyên -21, 10, 15, -5, -2, 25, 8, 1, -10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự giữa:
5. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên -21, 10, 15, -5, -2, 25, 8, 1, -10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự trước:
6. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên -21, 10, 15, -5, -2, 25, 8, 1, -10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự sau:
Phần 2. (Lập trình)
Cho đồ thị vô hướng G =<V, E> gồm N đỉnh và M cạnh được bi ểu di ễn d ưới
dạng danh sách kề trong file dske.in theo khn dạng sau:


Dịng đầu tiên ghi lại số tự nhiên N là số đỉnh của đồ th ị;




N dịng kế tiếp mỗi dịng ghi lại danh sách kề của đỉnh tương ứng.
Hai đỉnh trong cùng một danh sách kề được phân biệt với nhau bằng
một hoặc vài kí tự trống, đỉnh khơng có cạnh nối với nó (đỉnh cơ lập)
được ghi giá trị 0.

Hãy viết chương trình chuyển đổi biểu diễn đồ thị G dưới dạng danh sách
kề thành biểu diễn của đồ thị G dưới dạng ma trận kề và danh sách cạnh.
Khuôn dạng biểu diễn đồ thị G dưới dạng ma trận kề, danh sách kề đ ược
ghi lại trong file mtke.out và dscanh.out theo khn dạng sau:
Khn dạng file mtke.out:


Dịng đầu tiên ghi lại số tự nhiên n là số đỉnh của đồ th ị;



N dịng kế tiếp ghi lại ma trận kề của đồ thị, hai phần tử khác nhau
của ma trận kề được ghi cách nhau bởi một vài ký tự trống.

Khn dạng file dscanh.out


Dịng đầu tiên ghi lại số tự nhiên N và M tương ứng với số đỉnh và số
cạnh của đồ thị, hai số được ghi cách nhau bởi một vài ký tự trống;



M dịng kế tiếp mỗi dòng ghi lại một cạnh của đồ thị, đỉnh đầu và

đỉnh cuối của mỗi cạnh được ghi cách nhau bởi một vài ký tự tr ống.


Ví dụ đồ thị gồm 5 đỉnh, 4 cạnh được biểu diễn trong file dske.in nh ư d ưới
đây sẽ cho ta các file mtke.out và dscanh.out tương ứng.
Thang điểm:
Phần 1: 3 điểm
Phần 2: 5 điểm
Trả lời các câu hỏi của giám khảo: 2 điểm
ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 10
Đề thi gồm 02 trang - Sinh viên làm bài trong 60 phút
Phần 1. (Sinh viên trả lời bằng cách ghi ra kết quả mà không c ần gi ải
thích gì thêm)
1. Viết các phần tử của mảng a[] = {-1, 10, 7, 5, 1} t ại m ỗi giai đo ạn i khi áp
dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo th ứ tự gi ảm:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
2. Viết các phần tử của mảng a[] = {12, 1, -7, 5, 15} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo th ứ t ự tăng:
(i= 5)
(i= 4)
(i= 3)
(i= 2)
3. Viết các phần tử của mảng a[] = {1, -10, -7, 5, -1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo th ứ t ự giảm:
(i= 1)
(i= 2)

(i= 3)
(i= 4)
4. Viết các phần tử của cây nhị phân AVL được tạo t ừ các nút có khóa là các
số nguyên 17, 10, -15, -5, -2, 25, 8, 1, 15, -33 khi th ực hi ện phép duy ệt cây
theo thứ tự giữa:
5. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 17, 10, -15, -5, -2, 25, 8, 1, 15, -33 khi th ực hi ện phép duy ệt cây
theo thứ tự trước:
6. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các


số nguyên 17, 10, -15, -5, -2, 25, 8, 1, 15, -33 khi th ực hi ện phép duy ệt cây
theo thứ tự sau:
Phần 2. (Lập trình)
Cho đồ thị có hướng G =<V,E> gồm N đỉnh và M cạnh được biểu di ễn d ưới
dạng danh sách kề trong file mtke.in theo khn dạng sau:


Dịng đầu tiên ghi lại số tự nhiên N là số đỉnh của đồ th ị;



N dòng kế tiếp mỗi dòng chứa N số 0 hoặc 1 tương ứng m ột hàng
của ma trận kề. Hai số trên cùng 1 hàng được phân biệt với nhau
bằng một hoặc vài kí tự trống.

Hãy viết chương trình chuyển đổi biểu diễn đồ thị G dưới dạng ma tr ận
kề thành biểu diễn của đồ thị G dưới dạng danh sách kề và danh sách
cạnh. Khuôn dạng biểu diễn đồ thị G dưới dạng danh sách kề và danh sách
cạnh được ghi lại trong file dske.out và dscanh.out theo khn dạng sau:

Khn dạng file dske.out:


Dịng đầu tiên ghi lại số tự nhiên N là số đỉnh của đồ th ị;



N dịng kế tiếp, mỗi dịng ghi lại danh sách kề của đỉnh t ương ứng.
Hai đỉnh trong cùng một danh sách kề được phân biệt với nhau bằng
một hoặc vài kí tự trống, đỉnh khơng có cạnh nối với nó (đỉnh cơ lập)
được ghi giá trị 0.

Khn dạng file dscanh.out


Dịng đầu tiên ghi lại số tự nhiên N và M tương ứng với số đỉnh và số
cạnh của đồ thị, hai số được ghi cách nhau bởi một vài ký tự trống;



M dịng kế tiếp mỗi dịng ghi lại một cạnh của đồ thị, đỉnh đầu và
đỉnh cuối của mỗi cạnh được ghi cách nhau bởi một vài ký tự tr ống.

Ví dụ đồ thị gồm 5 đỉnh, 4 cạnh được biểu diễn trong file mtke.in nh ư d ưới
đây sẽ cho ta các file dske.out và dscanh.out tương ứng.
Thang điểm:
Phần 1: 3 điểm


Phần 2: 5 điểm

Trả lời các câu hỏi của giám khảo: 2 điểm
ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 11
Đề thi gồm 02 trang - Sinh viên làm bài trong 60 phút
Phần 1. (Sinh viên trả lời bằng cách ghi ra kết quả mà khơng c ần gi ải
thích gì thêm)
1. Viết các phần tử của mảng a[] = {0, 12, -7, -5, 1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo th ứ tự tăng:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
2. Viết các phần tử của mảng a[] = {-11, 1, -7, 5, 15} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo th ứ t ự giảm:
(i= 5)
(i= 4)
(i= 3)
(i= 2)
3. Viết các phần tử của mảng a[] = {1, 10, -7, 5, -1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo th ứ t ự tăng:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
4. Viết các phần tử của cây nhị phân AVL được tạo t ừ các nút có khóa là các
số nguyên 1, -10, 15, -5, -2, 25, 8, 12, 10, 0 khi th ực hiện phép duy ệt cây
theo thứ tự sau:
5. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 1, -10, 15, -5, -2, 25, 8, 12, 10, 0 khi th ực hiện phép duy ệt cây
theo thứ tự trước:

6. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 1, -10, 15, -5, -2, 25, 8, 12, 10, 0 khi th ực hiện phép duy ệt cây
theo thứ tự giữa:
Phần 2. (Lập trình)
Cho đồ thị có hướng G = <V,E> gồm N đỉnh được biểu diễn d ưới d ạng ma
trận kề trong file dothi.in theo khuôn dạng sau:




Dòng đầu tiên ghi số tự nhiên N tương ứng với số đỉnh của đ ồ th ị;



N dịng kế tiếp ghi lại ma trận kề của đồ thị, hai phần tử khác nhau
của ma trận kề được viết cách nhau một vài khoảng trống.

Hãy viết chương trình kiểm tra G có phải là đồ th ị n ửa Euler hay không?
Nếu G là đồ thị nửa Euler hãy xây dựng một đường đi Euler của đ ồ th ị,
ngược lại đưa ra thông báo “G
không là đồ thị nửa Euler”?. Các kết quả xuất ra màn hình.
Ví dụ với đồ thị dưới đây sẽ cho ta đường đi Euler : 2 - 3 - 4 - 1 - 2 – 4:
Thang điểm:
Phần 1: 3 điểm
Phần 2: 5 điểm
Trả lời các câu hỏi của giám khảo: 2 điểm
ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 12
Đề thi gồm 02 trang - Sinh viên làm bài trong 60 phút
Phần 1. (Sinh viên trả lời bằng cách ghi ra kết quả mà không c ần gi ải

thích gì thêm)
1. Viết các phần tử của mảng a[] = {-10, 10, -7, 5, 1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo th ứ tự tăng:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
2. Viết các phần tử của mảng a[] = {-11, 10, -7, 5, -15} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo th ứ tự gi ảm:
(i= 5)
(i= 4)
(i= 3)
(i= 2)
3. Viết các phần tử của mảng a[] = {11, -10, -7, 5, -1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo th ứ t ự giảm:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
4. Viết các phần tử của cây nhị phân AVL được tạo t ừ các nút có khóa là các
số nguyên 21, 10, 15, -5, -2, 25, 8, 1, -10, 30 khi th ực hi ện phép duy ệt cây


theo thứ tự trước:
5. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 21, 10, 15, -5, -2, 25, 8, 1, -10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự sau:
6. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 21, 10, 15, -5, -2, 25, 8, 1, -10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự giữa:

Phần 2. (Lập trình)
Cho đồ thị vô hướng G = <V,E> gồm N đỉnh được biểu diễn d ưới dạng ma
trận kề trong file dothi.in theo khn dạng sau:
Dịng đầu tiên ghi số tự nhiên N tương ứng với số đỉnh của đ ồ th ị;
N dòng kế tiếp ghi lại ma trận kề của đồ thị, hai phần tử khác nhau c ủa
ma trận kề được viết cách nhau một vài khoảng trống.
Hãy viết chương trình kiểm tra G có phải là đồ th ị n ửa Euler hay không?
Nếu G là đồ thị nửa Euler hãy xây dựng một đường đi Euler của đ ồ th ị,
ngược lại đưa ra thông báo “G
không là đồ thị nửa Euler”? Các kết quả xuất ra màn hình.
Ví dụ với đồ thị dưới đây sẽ cho ta đường đi Euler : 2 - 1 - 3 - 2 - 4 - 3
Thang điểm:
Phần 1: 3 điểm
Phần 2: 5 điểm
Trả lời các câu hỏi của giám khảo: 2 điểm
ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 13
Đề thi gồm 02 trang - Sinh viên làm bài trong 60 phút
Phần 1. (Sinh viên trả lời bằng cách ghi ra kết quả mà khơng c ần gi ải
thích gì thêm)
1. Viết các phần tử của mảng a[] = {-1, 10, -7, 5, 1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo th ứ tự gi ảm:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
2. Viết các phần tử của mảng a[] = {-11, 10, -7, 5, 15} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo th ứ tự tăng:
(i= 5)



(i= 4)
(i= 3)
(i= 2)
3. Viết các phần tử của mảng a[] = {11, 10, -7, 5, -1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo th ứ t ự tăng:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
4. Viết các phần tử của cây nhị phân AVL được tạo t ừ các nút có khóa là các
số nguyên 21, 10, 15, -5, -2, 25, 8, 1, -4, -30 khi th ực hi ện phép duy ệt cây
theo thứ tự giữa:
5. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 21, 10, 15, -5, -2, 25, 8, 1, -4, -30 khi th ực hi ện phép duy ệt cây
theo thứ tự sau:
6. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 21, 10, 15, -5, -2, 25, 8, 1, -4, -30 khi th ực hi ện phép duy ệt cây
theo thứ tự trước:
Phần 2. (Lập trình)
Cho đồ thị vơ hướng G = <V, E> gồm N đỉnh được biểu diễn dưới d ạng
danh sách kề trong file dothi.in theo khn dạng sau:
• Dòng đầu tiên ghi lại số tự nhiên N tương ứng với số đỉnh của đ ồ th ị;
• N dòng kế tiếp, mỗi dòng ghi lại danh sách kề của đỉnh tương ứng, hai
đỉnh khác nhau của cùng một danh sách kề được ghi cách nhau b ởi m ột vài
ký tự trống.
Hãy viết chương trình kiểm tra G có phải là đồ th ị Euler hay khơng? Nếu G
là đồ thị Euler, hãy xây dựng một chu trình Euler của đồ th ị bắt đ ầu tại
đỉnh u (u được nhập từ bàn phím), ngược lại đưa ra thông báo “G không là
đồ thị Euler”?

Kết quả in ra màn hình.
Ví dụ với đồ thị dưới đây sẽ cho ta chu trình Euler bắt đầu tại đ ỉnh s ố 1 là :
1 - 2 - 3 - 4 – 1:
Thang điểm:
Phần 1: 3 điểm
Phần 2: 5 điểm
Trả lời các câu hỏi của giám khảo: 2 điểm
ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 14


Đề thi gồm 02 trang - Sinh viên làm bài trong 60 phút
Phần 1. (Sinh viên trả lời bằng cách ghi ra kết quả mà khơng c ần gi ải
thích gì thêm)
1. Viết các phần tử của mảng a[] = {-1, 10, -7, 5, 21} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo th ứ tự tăng:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
2. Viết các phần tử của mảng a[] = {-1, 10, -7, 5, 15} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo th ứ t ự giảm:
(i= 5)
(i= 4)
(i= 3)
(i= 2)
3. Viết các phần tử của mảng a[] = {11, 17, -7, 5, -1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo th ứ t ự tăng:
(i= 1)
(i= 2)

(i= 3)
(i= 4)
4. Viết các phần tử của cây nhị phân AVL được tạo t ừ các nút có khóa là các
số nguyên 17, 0, 15, -5, -2, 25, 8, 1, 10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự giữa:
5. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 17, 0, 15, -5, -2, 25, 8, 1, 10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự trước:
6. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 17, 0, 15, -5, -2, 25, 8, 1, 10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự sau:
Phần 2. (Lập trình)
Cho đồ thị có hướng G = <V,E> gồm N đỉnh được biểu diễn d ưới d ạng ma
trận kề trong file dothi.in theo khn dạng sau:


Dịng đầu tiên ghi lại hai số tự nhiên N tương ứng với số đ ỉnh của đ ồ
thị;




N dòng kế tiếp ghi lại ma trận kề của đồ thị, hai phần tử khác nhau
của ma trận kề được viết cách nhau một vài khoảng trống.

Hãy viết chương trình kiểm tra G có phải là đồ th ị Euler hay không? Nếu G
là đồ thị Euler hãy xây dựng một chu trình Euler của đồ th ị bắt đ ầu tại
đỉnh u (u được nhập từ bàn
phím), ngược lại đưa ra thông báo “G không là đồ th ị Euler”?
Kết quả in ra màn hình.

Ví dụ với đồ thị dưới đây sẽ cho ta chu trình Euler bắt đầu tại đ ỉnh s ố 1 là :
1 - 2 - 3 - 4 – 1:
Thang điểm:
Phần 1: 3 điểm
Phần 2: 5 điểm
Trả lời các câu hỏi của giám khảo: 2 điểm
ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 15
Đề thi gồm 02 trang - Sinh viên làm bài trong 60 phút
Phần 1. (Sinh viên trả lời bằng cách ghi ra kết quả mà khơng c ần gi ải
thích gì thêm)
1. Viết các phần tử của mảng a[] = {-1, 10, -7, 5, 19} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo th ứ tự gi ảm:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
2. Viết các phần tử của mảng a[] = {-11, 10, -7, 5, 5} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo th ứ t ự giảm:
(i= 5)
(i= 4)
(i= 3)
(i= 2)
3. Viết các phần tử của mảng a[] = {17, 10, -7, 5, -1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo th ứ t ự tăng:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
4. Viết các phần tử của cây nhị phân AVL được tạo t ừ các nút có khóa là các



số nguyên 11, 18, 15, -5, -2, 25, 8, 1, 10, 17 khi th ực hiện phép duy ệt cây
theo thứ tự sau:
5. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 11, 18, 15, -5, -2, 25, 8, 1, 10, 17 khi th ực hiện phép duy ệt cây
theo thứ tự giữa:
6. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 11, 18, 15, -5, -2, 25, 8, 1, 10, 17 khi th ực hiện phép duy ệt cây
theo thứ tự trước:
Phần 2. (Lập trình)
Cho đồ thị có trọng số gồm N đỉnh G = <V,E>. Sử dụng thuật tốn Dịkstra,
hãy viết chương trình tìm một đường đi ngắn nhất từ đỉnh s đến đỉnh t
cho trước. Dữ liệu vào cho bởi file dothi.in là bi ểu diễn của đ ồ th ị d ưới
dạng ma trận trọng số theo khn dạng sau:


Dịng đầu tiên ghi lại ba số tự nhiên N, s và t. Các số khác nhau đ ược
viết cách nhau bởi một vài khoảng trống.



N dịng kế tiếp, mỗi dòng i chứa N số tự nhiên là các tr ọng số của các
cạnh xuất phát từ đỉnh i, trong đó số 0 có nghĩa là khơng có c ạnh n ối
tương ứng. Hai số khác nhau trên cùng 1 dòng được ghi cách nhau
bởi một vài ký tự trống.

Đường đi tìm được ghi ra màn hình theo khn dạng sau:



Dịng đầu tiên ghi lại số d là độ dài đường đi từ s đến t. Trong tr ường
hợp khơng có đường đi ghi số -1.



Trong trường hợp có đường đi từ s đến t, dịng tiếp theo ghi các đ ỉnh
trên đường đi bắt đầu từ s và kết thúc tại t. Hai đỉnh khác nhau ghi
cách nhau bởi một vài ký tự trống.

Ví dụ:
Thang điểm:
Phần 1: 3 điểm
Phần 2: 5 điểm
Trả lời các câu hỏi của giám khảo: 2 điểm
ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 16


Đề thi gồm 02 trang - Sinh viên làm bài trong 60 phút
Phần 1. (Sinh viên trả lời bằng cách ghi ra kết quả mà khơng c ần gi ải
thích gì thêm)
1. Viết các phần tử của mảng a[] = {-1, 10, -7, 5, 1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo th ứ tự tăng:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
2. Viết các phần tử của mảng a[] = {-11, 10, -7, 5, 15} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo th ứ tự tăng:
(i= 5)

(i= 4)
(i= 3)
(i= 2)
3. Viết các phần tử của mảng a[] = {11, 10, -7, 5, -1} t ại m ỗi giai đo ạn i khi
áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo th ứ t ự giảm:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
4. Viết các phần tử của cây nhị phân AVL được tạo t ừ các nút có khóa là các
số nguyên 21, 10, 15, -5, -2, 25, 8, 1, -10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự giữa:
5. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 21, 10, 15, -5, -2, 25, 8, 1, -10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự trước:
6. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 21, 10, 15, -5, -2, 25, 8, 1, -10, 30 khi th ực hi ện phép duy ệt cây
theo thứ tự sau:
Phần 2. (Lập trình)
Cho đồ thị có trọng số gồm N đỉnh G = <V,E>. Sử dụng thuật tốn Floyd, hãy
viết chương trình tìm hai đỉnh u và v của G sao cho tổng độ dài đ ường đi t ừ
u đến v và từ v đến u là ngắn nhất. Dữ liệu vào cho b ởi file dothi.in là bi ểu
diễn của đồ thị dưới dạng ma trận trọng số theo khn dạng sau:


Dịng đầu tiên ghi số tự nhiên N.





N dòng kế tiếp, mỗi dòng i chứa N số tự nhiên là các tr ọng số của các
cạnh xuất phát từ đỉnh i, trong đó số 0 có nghĩa là khơng có c ạnh n ối
tương ứng. Hai số khác nhau trên cùng 1 dòng được ghi cách nhau
bởi một vài ký tự trống.

Kết quả tìm được ghi ra màn hình theo khn dạng sau:


Dịng đầu tiên ghi lại hai đỉnh u, v tìm được cách nhau khoảng tr ống..
Trong trường hợp khơng tìm được ghi hai số 0.



Trong trường hợp tìm được u, v, hai dịng tiếp theo, dòng th ứ hai ghi
độ dài đường đi từ u đến v và các đỉnh trên đường đi, dòng th ứ ba ghi
độ dài đường đi từ v đến u và các đỉnh trên đường đi. Hai s ố khác
nhau trên 1 dòng ghi cách nhau bởi một vài ký tự trống.

Chỉ cần đưa ra một kết quả.
Ví dụ:
Thang điểm:
Phần 1: 3 điểm
Phần 2: 5 điểm
Trả lời các câu hỏi của giám khảo: 2 điểm
ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 17
Đề thi gồm 02 trang - Sinh viên làm bài trong 60 phút
Phần 1. (Sinh viên trả lời bằng cách ghi ra kết quả mà không c ần gi ải
thích gì thêm)
. Viết các phần tử của mảng a[] = {-1, 10, -7, 5, 21} t ại m ỗi giai đo ạn i khi

áp dụng thuật toán sắp xếp lựa chọn để sắp xếp a theo th ứ tự gi ảm:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
2. Viết các phần tử của mảng a[] = {-11, 10, -17, 5, 15} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp nổi bọt để sắp xếp a theo th ứ tự gi ảm:
(i= 5)
(i= 4)
(i= 3)
(i= 2)


3. Viết các phần tử của mảng a[] = {11, 17, -7, 15, -1} t ại m ỗi giai đo ạn i
khi áp dụng thuật toán sắp xếp xen vào để sắp xếp a theo th ứ tự tăng:
(i= 1)
(i= 2)
(i= 3)
(i= 4)
4. Viết các phần tử của cây nhị phân AVL được tạo t ừ các nút có khóa là các
số nguyên 5, -10, 15, -5, -2, 25, 8, 1, 10, 3 khi th ực hi ện phép duy ệt cây theo
thứ tự sau:
5. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 5, -10, 15, -5, -2, 25, 8, 1, 10, 3 khi th ực hi ện phép duy ệt cây theo
thứ tự giữa:
6. Viết các phần tử của cây nhị phân AVL được tạo từ các nút có khóa là các
số nguyên 5, -10, 15, -5, -2, 25, 8, 1, 10, 3 khi th ực hi ện phép duy ệt cây theo
thứ tự trước:
Phần 2. (Lập trình)
Cho đồ thị có hướng G =<V,E> gồm N đỉnh được biểu diễn dưới dạng danh

sách kề trong file dske.in theo khn dạng sau:


Dịng đầu tiên ghi lại số tự nhiên N là số đỉnh của đồ th ị;



N dịng kế tiếp mỗi dòng ghi lại danh sách kề của đỉnh tương ứng.
Hai đỉnh trong cùng một danh sách kề được phân biệt với nhau bằng
một hoặc vài kí tự trống, đỉnh khơng có cạnh nối với nó (đỉnh cơ lập)
được ghi giá trị 0.

Hãy viết chương trình kiểm tra và đưa ra màn hình thơng báo:
a) “Đồ thị liên thơng mạnh” nếu G liên thông mạnh;
b) “Đồ thị liên thông yếu” nếu G không liên và G liên thông y ếu;
c) “Đồ thị không liên thông mạnh, không liên thông yếu” trong nh ững
trường hợp cịn lại.
Ví dụ với đồ thị được biểu diễn dưới dạng danh sách kề dưới, kết quả
thực hiện của chương trình là “ Đồ thị liên thông mạnh”.
Thang điểm:
Phần 1: 3 điểm
Phần 2: 5 điểm
Trả lời các câu hỏi của giám khảo: 2 điểm
ĐỀ THI HẾT HỌC PHẦN - MÔN CẤU TRÚC DỮ LIỆU & GI ẢI THUẬT Đ Ề
SỐ 18


×