Lê Hoàng Long 09t4
Thực hành cấu trúc dữ liệu
Chú ý:
- viết bằng C
- mỗi yêu cầu viết theo dạng hàm.
- Mỗi nhóm viết 1 file báo cáo (khoảng 10-12 trang) trình bày cách giải bài toán,
thuật toán cụ thể hoặc sơ đồ khối cho từng yêu cầu (in ra giấy).
- Nội dung kiểm tra thực hành trên máy: Sắp xếp, tìm kiếm phần tử trong mảng 1
chiều, danh sách liên kết (thêm phần tử, tìm phần tử, xóa phần tử, đếm số phần tử
trong ds)….
PHẦN I: mảng, con trỏ
Câu 1,2:
Cho mảng, thực hiện các lệnh sau:
1. Sắp xếp mảng tăng dần theo phương pháp chọn trực tiếp
2. Hãy tìm phần tử d có trong mảng theo pp tìm kiếm nhị phân
3. Tìm phần tử lớn nhất trong mảng dùng đệ qui
4. Sắp xếp mảng giảm dần theo phương pháp nổi bọt
5. Tìm phần tử d trong mảng theo pp tìm tuyến tính
6. Tìm phần tử nhỏ nhất trong mảng (ko dùng đệ qui)
PHẦN III: Danh sách liên kết đơn
Câu 3 8: Cho danh sách liên kết đơn gồm nhiều phần tử, với một
vùng info và vùng liên kết chứa địa chỉ của phần tử kế tiếp:
+ Vùng info là kiểu số nguyên:
1. Đếm số phần tử dương của danh sách
2. Đếm các số nguyên tố trong ds
3. tính tích các phần tử dương trong ds
4. Sắp xếp ds tăng dần theo pp chọn trực tiếp
5. Sắp xếp ds giảm dần theo pp nổi bọt
6. Tách DSLK làm hai ds mới, một chẵn một lẻ
7. Đảo ngược dslk
+ Vùng info là một ký tự (‘A’ ‘Z’)
1. Đếm số ký tự (không trùng nhau) có trong ds
2. Sắp xếp ds tăng dần theo pp nổi bọt
3. Bổ sung vào ds đã sắp xếp này sao cho đầy đủ từ AZ
4. Loại khỏi danh sách các phần tử trùng nhau
5. Tạo một dslk đơn mới chứa các ký tự ko có trong ds đã cho
Baby i love forever:x;x;x;x
Lê Hoàng Long 09t4
Phần IV: Danh sách liên kết đa
Đề 9, 10,11,12: Cho một chuỗi văn bản gồm các kí tự chữ, khoảng
trắng và dấu chấm. Chuỗi gồm có một câu kết thúc bằng dấu chấm. Hãy xây
dựng dslk để lưu trữ văn bản trên và viết CT thực hiện các công việc sau:
1. Đếm số từ trong câu
2. Đếm số câu có trong văn bản
3. Đếm số từ có trong văn bản
4. Tìm và thay thế một từ bằng một từ khác.
5. Cho biết các ký tự bắt đầu bằng ‘H’
6. Cho biết các từ có chiều dài n ký tự cho trước.
7. Xuất ra màn hình câu dài nhất
8. Xuất ra màn hình câu ngắn nhất
9. Cho biết từ dài nhất trong câu và tính số ký tự của từ dài
nhất
10.Cho biết các câu có chiều dài lớn hơn hoặc bằng n từ cho
trước
Đề 13: Quản lí thông tin sinh viên của một lớp gồm(Msv, Tên, Điểm
Toán, Lý, Hóa). Tổ chức cấu trúc dữ liệu thích hợp để biểu diễn các
thông tin trên và cài đặt các chức năng:
1. Cập nhật lý lịch cho sv (thêm, sửa, xóa)
2. Tìm thông tin của 1 sv ( nhập Msv)
3. Tính điểm TB = (Toán *3 + Lý*2 + Hóa)/6
4. In ra những sv có ĐTB >=7.
Đề 14: Quản lý thông tin số lượng sv của từng lớp gồm: tên, lớp, số
lượng sv nam, nữ. Tổ chức ctdl thích hợp để biểu diễn các thông tin
trên và cài đặt chức năng:
1. Cập nhật thông tin số lượng sinh viên các lớp (thêm, sửa,
xóa)
2. Tìm số lượng sv từng lớp = Số Nam + số nữ
3. Tìm thông tin của một lớp (nhập tên lớp)
4. In ra những lớp có số lượng sv >=100
Đề 15: Một xí nghiệp may chỉ sản xuất áo và quần. Quản lý thông tin
sản phẩm may được của các công nhân gồm: Họ tên công nhân, số
lượng quần, số lượng áo may được. Tổ chức CTDL để:
1. Cập nhật thông tin sản phẩm của các công nhân( thêm, sửa,
xóa)
Baby i love forever:x;x;x;x
Lê Hoàng Long 09t4
2. Tính số tiền công mỗi công nhân, biết đơn giá quần là 20k,
áo là 15k
3. Tìm thông tin của một công nhân (nhập họ tên Công nhân)
4. in ra những công nhân chỉ may một loại sản phẩm duy nhất.
Đề 16: Quản lý thông tin các lần bán hàng gồm: tên hàng, số lượng,
đơn giá. Tổ chức CTDL thích hợp để biểu diễn các thông tin trên và
cài đặt chức năng:
1. Cập nhật thông tin bán hàng (thêm, sửa, xóa)
2. tính Thành tiền= Số lượng x đơn giá
3. In ra những lần bán hàng với thành tiền >= 5000k
PHẦN V: Cây nhị phân
Đề 17: Cho cây nhị phân tìm kiếm có gốc là root. Mỗi node trên cây
có info là một số nguyên và chỉ liên kết đến cây con trái và cây con
phải. Viết chương trình thực hiện các công việc sau:
a. Duyệt cây nhị phân theo các pp NLR, LNR, LRN.
b. Đếm số node, số node lá, số node nhánh trên cây.
c. Tìm x (nhập từ bàn phím) trên cây. Nếu tìm thấy hãy in ra
màn hình giá trị của các node lớn hơn x.
d. Tính tổng độ dài của cây và tổng giá trị của các node trên
cây.
e. Đếm số node bậc một của cây và đếm xem có bao nhiêu
node có giá trị x trên cây.
f. Tính chiều cao của cây
Baby i love forever:x;x;x;x