Giáo án thực hành cấu trúc dữ liệu và thuật toán - Pdf 22

MỤC LỤC
Contents
Contents 1
YÊU CẦU CHUNG ĐỐI VỚI MỖI BUỔI THỰC HÀNH 5
Buổi 1: DANH SÁCH CÀI ĐẶT BỞI MẢNG – DANH SÁCH KẾ TIẾP 6
a. Mục êu: 6
Về kiến thức: 6
Về kĩ năng: 6
Về thái độ: 6
b. Yêu cầu 6
c. Nội dung thực hành: 6
Bài 1 Cơ bản 6
Bài 2 Cơ bản 6
Bài 3 Cơ bản 7
Bài 4 Nâng cao 7
Các bài tập về nhà 7
d.Bài tập mẫu 7
Buổi 2: DANH SÁCH CÀI ĐẶT BỞI CON TRỎ – DANH SÁCH LIÊN KẾT 9
a. Mục êu: 9
Về kiến thức: 9
Về kĩ năng: 9
Về thái độ: 9
b. Yêu cầu 9
c. Nội dung thực hành: 9
Bài 1: Mức cơ bản 9
Bài 2: Mức cơ bản 9
Các bài tập về nhà: 10
d.Bài tập mẫu 10
Buổi 3 NGĂN XẾP 12
a. Mục êu: 12
Về kiến thức: 12

Về thái độ: 18
c.Nội dung thực hành: 18
Bài 1: Cơ bản 18
Bài 2 Nâng cao 18
2
d.bài tập mẫu: 19
Buổi 7: CÂY NHỊ PHÂN TÌM KIẾM 20
a. Mục êu: 20
Về kiến thức: 20
Về kĩ năng: 20
Về thái độ: 20
b.Yêu cầu chi ết 20
c. Nội dung thực hành: 20
Bài 1: Cơ bản 20
Bài 2: Nâng cao 21
d. Bài giải mẫu 21
Buổi 8: ÔN TẬP CÁC CTDL CÂY + KIỂM TRA 23
a. Mục êu: 23
Về kiến thức: 23
Về kĩ năng: 23
Về thái độ: 23
b.Yêu cầu chi ết 23
c. Nội dung thực hành: 23
d. Bài giải mẫu 23
Buổi 9: ĐỒ THỊ 24
a. Mục êu: 24
Về kiến thức: 24
Về kĩ năng: 24
Về thái độ: 24
b.Yêu cầu chi ết 24

 Hướng dẫn, trả lời, giải đáp các thắc mắc của sinh viên.
 Đánh giá, nhận xét kêt quả, ý thức của sinh viên cuối mỗi buổi thực
hành.
 Hình thức đánh giá:
o Kết quả thực hành của sinh viên trong từng buổi có thể được lưu lại và lấy
trung bình xem như một điểm kiểm tra.
 Thời gian thực hành
o Theo lịch trình môn học.
5
Buổi 1: DANH SÁCH CÀI ĐẶT BỞI MẢNG – DANH SÁCH KẾ TIẾP
a. Mục tiêu:
Về kiến thức:
o Nắm vững vai trò, tầm quan trọng và khả năng của danh sách nói chung
o Nắm vững cấu trúc dữ liệu (CTDL) danh sách kế tiếp. Ưu, nhược điểm của
CTDL này.
Về kĩ năng:
o Sinh viên phải biết cài đặt danh sách kế tiếp và thực hành thành thạo các
thao tác trên danh sách kế tiếp
o Có khả năng liên hệ, giải quyết các bài toán liên quan đến danh sách trong
thực tế
Về thái độ:
+ Tự giác chuẩn bị các câu hỏi và bài tập.
+ Tự tin trong việc giải các bài toán liên quan đến danh sách kế tiếp.
b. Yêu cầu
- Thực hành các nội dung giáo viên giao trong nội dung buổi thực hành
- Có ý thức tốt trong giờ thực hành.
- Chuẩn bị trước tất cả các nội dung trong buổi thực hành
c. Nội dung thực hành:
Bài 1 Cơ bản
Cho một danh sách chứa tối đa m số nguyên. Yêu cầu:

sách liên kết đơn vòng, danh sách liên kết kép.
d.Bài tập mẫu
Bài 1:Cho một danh sách chứa tối đa 100 số nguyên. Yêu cầu:
d. Biểu diễn danh sách bởi mảng
e. Thực hiện các thao tác sau trên danh sách
a. Nhập dữ liệu cho danh sách gồm n phần tử
b. Hiển thị danh sách vừa nhập
{bai giang mau}
Use crt;
Const m=100;
Type ArrayList = record
Infor: array[1 m] of integer;
Count:0 n;
End;
Var L: ArrayList;
n: integer;
7
Procedure nhapDS(var L: ArrayList, n: integer);
Var i: integer;
Begin
For i =1 to n do
Begin
Writeln(‘Nhap so nguyen thu ’,i)’
Readln(L.infor[i]);
End
L.count=n;
End;
Procedure hienthiDS(L: ArrayList);
Var i: integer;
Begin

- Chuẩn bị trước tất cả các nội dung trong buổi thực hành
c. Nội dung thực hành:
Bài 1: Mức cơ bản
Cho CTDL danh sách liên kết đơn chứa các số thực. Yêu cầu thực hiện các thao tác sau
trên danh sách
1. Nhập dữ liệu cho danh sách gồm n phần tử
2. Hiển thị danh sách vừa nhập
Bài 2: Mức cơ bản
Cho CTDL danh sách liên kết đơn chứa các sinh viên. Mỗi sinh viên cần quản lý các
thông tin: Họ tên, giới tính, lớp, quê quán, hạnh kiểm. Yêu cầu thực hiện các thao tác sau
trên danh sách:
3. Nhập dữ liệu cho danh sách chứa n sinh viên (n là số nguyên nhập vào từ bàn
phím)
4. Hiển thị danh sách vừa nhập.
5. Thêm một sinh viên vào vị trí k trong danh sách
9
6. Hiển thị tất cả các sinh viên có hạnh kiểm tốt lên màn hình
7. Tách các sinh viên có hạnh kiểm yếu trong danh sách ra một danh sách riêng.
Các bài tập về nhà:
Bài 3: Tương tự bài 2, nhưng quản lý danh sách cán bộ, và cài đặt các thao tác thường
gặp đối với danh sách cán bộ.
Bài 4: Nâng cao
Giả sử phòng đào tạo cần quản lý k danh sách các lớp sinh viên đang học môn
CTDL&TT tại trường. Anh(chị) hãy
- Viết cấu trúc dữ liệu danh sách liên kết đơn để biểu diễn cho các danh sách trên
- Thực hiện các thao tác:
o Nhập dữ liệu cho từng danh sách
o Kiểm tra xem có sinh viên nào có tên trong 2 ds trở nên.
o Hiển thị từng danh sách sinh viên lên màn hình
o Đếm tổng số lượng sinh viên đang học môn CTDL&TT.

End
End;
Procedure hienthiDS(L: SingleLinkList);
Var P: SingleLinkList;
Begin
Writeln(‘danh sach so nguyen :’);
P:=L;
While (P<>nill)
begin
Write(L.infor:4);
P:=P.link;
End;
BEGIN
Clrscr;
Write(‘Nhap so luong phan tu trong ds, n= ’);
Readln(n);
nhapDS(L,n);
hienthiDS(L);
readln;
END.
11
Buổi 3 NGĂN XẾP
a. Mục tiêu:
Về kiến thức:
+ Sinh viên cần nắm vững các kiến thức về ngăn xếp
+ Có khả năng áp dụng ngăn xếp cho các bài toán thực tế.
Về kĩ năng:
Thực hành thành
Về thái độ:
+ Tự giác chuẩn bị các câu hỏi và bài tập.

e. Thay cuốn sách ở vị trí k trong ngăn kéo kể từ đỉnh bởi cuốn sách
d.Bài giải mẫu
Giảng viên chọn một CTDL ngăn xếp sau đó cài đặt mẫu một số thao tác POP, PUSH,
nhập và hiển thị dữ liệu với CTDL lựa chọn.
13
Buổi 4 HÀNG ĐỢI + KIỂM TRA
a. Mục tiêu:
Về kiến thức:
+ Sinh viên cần nắm vững các kiến thức về hàng đợi
+ Có khả năng áp dụng hàng đợi cho các bài toán thực tế.
Về kĩ năng:
Thực hành thành
Về thái độ:
+ Tự giác chuẩn bị các câu hỏi và bài tập.
+ Vận dụng kiến thức cho các bài toán cụ thể.
b. Yêu cầu
- Chuẩn bị trước các kiến thức về hàng đợi và ôn tập lại toàn bộ các kiến thức đã
học chuẩn bị cho ktra
- Các yêu cầu khác (như yêu cầu chung)
c. Nội dung thực hành:
Tương tự như nội dung của bài thực hành số 3 nhưng áp dụng cho hàng đợi
d.Bài giải mẫu
Giảng viên cài đặt mẫu một số thao tác POP, PUSH, nhập và hiển thị dữ liệu trong hàng,
hoặc yêu cầu SV tham khảo trong cuốn bài giảng môn học.
14
Buổi 5: CÂY TỔNG QUÁT (CÂY ĐA PHÂN, CÂY)
a. Mục tiêu:
Về kiến thức:
o Nắm vững các kiến thức về cây đa phân. Khả năng ứng dụng của cây đa
phân

8 9
10
11
12 13 14
Bài 2: Nâng cao
Cho một cây thư mục máy tính. Mỗi thư mục cần quản lý các thông tin: Tên thư mục,
kích cỡ. Yêu cầu:
1. Biểu diễn cây bằng danh sách các con của mỗi đỉnh
2. Cài đặt các thao tác sau trên cây:
a. Xoá một đỉnh lá nào đó
b. Xoá cây con có gốc tại đỉnh thứ k nào đó
c. Duyệt cây để hiển thị : Duyệt trước, duyệt giữa, duyệt sau
d. Sửa dữ liệu lưu tại các cây trên để biến cây trở thành cây thư mục và thực
hiện các thao tác có thể có trên cây thư mục
e. Hiển thị hình ảnh cây sau khi nó được biểu diễn trên máy tính
f. Đánh mức cho các đỉnh trên cây
g. Tìm chiều cao của cây.
Các bài tập về nhà
Bài 3
Tương tự bài 2 nhưng với biểu diễn cây bằng cha của mỗi đỉnh. Cài đặt bổ sung thêm các
thao tác khác trên cây và áp dụng cho cây tổ chức nhân sự trong một cơ quan/tổ chức cụ
thể.
Lưu ý:
sinh viên cần thực hành các thao tác trên các dạng biểu diễn cây trên và cài đặt
sử dụng 2 cách tiếp cận con trỏ và mảng
d.bài tập mẫu:
Cho một cây đa phân chứa 100 số nguyên. Yêu cầu:
1. Biểu diễn cây bằng con trưởng và em liền kề của mỗi đỉnh sử dụng mảng.
2. Cài đặt các thao tác sau trên CTDL ở ý 1.
a. Nhập dữ liệu cho cây chứa n đỉnh

Writeln(‘Du lieu tren cay: Infor – EldestChild – NextSibling’);
For i=1 to n do
Write(T[i].infor:4, ‘ - ’, T[i].EldestChild, ‘ - ’, T[i].NextSibling);
End;
BEGIN
Clrscr;
Write(‘Nhap so luong dinh cua cay, n= ’);
Readln(n);
nhapDL(T,n);
hienthiCay(T);
readln;
END.
17
Buổi 6: CÂY NHỊ PHÂN
a. Mục tiêu:
Về kiến thức:
o Nắm vững các kiến thức về cây NHỊ phân. Khả năng ứng dụng của cây NHỊ
PHÂN
Về kĩ năng:
o Thực hành thành thạo các thao tác trên cây NHỊ PHÂN biểu diễn bởi:
 Mảng
 Con trỏ
Về thái độ:
o Tự tin trong việc áp dụng và cài đặt các CTDL cây nhị phân.
c.Nội dung thực hành:
Bài 1: Cơ bản
Cho một cây nhị phân chứa các số thực
Yêu cầu:
1. Viết CTDL biểu diễn cây bằng mảng
2. Cài đặt các thao tác sau trên CTDL cây này:

+ Vận dụng kiến thức cho các bài toán cụ thể.
b.Yêu cầu chi tiết
- Sinh viên chuẩn bị trước các kiến thức về cây NPTK (có thể cài đặt trước)
- Các yêu cầu khác (như yêu cầu chung)
c. Nội dung thực hành:
Bài 1: Cơ bản
Cho cây NPTK như hình vẽ:
Anh (chị) hãy
1. Biểu diễn CTDL cây NPTK bởi con trỏ
2. Với dạng biểu diễn trên Anh (Chị) hãy:
a. Nhập dữ liệu cho cây: Như cây trên
20
10
6 15
4 8 12 23
1 5 7 9 11 14 20
b. Hiển thị dữ liệu trên cây vừa nhập
c. Tìm kiếm một đỉnh có khóa x trên cây
d. Thêm một khóa vào cây
e. Xoá đỉnh có khóa là x trên cây ()
Bài 2: Nâng cao
Cho một cây nhị phân tìm kiếm chứa các thành viên trong một họ tộc. Khóa của mỗi đỉnh
là số chứng minh thư của người tương ứng tại đỉnh đó. Yêu cầu
1. Biểu diễn cây bởi mảng
2. Thực hiện các thao tác trên cây:
a. Xoá cây con có gốc tại đỉnh thứ k nào đó
b. Duyệt cây để hiển thị : Duyệt trước, duyệt giữa, duyệt sau
c. Sửa dữ liệu lưu tại các cây trên để biến cây trở thành cây thư mục và thực
hiện các thao tác có thể có trên cây thư mục
d. Hiển thị hình ảnh cây sau khi nó được biểu diễn trên máy tính

+ Biểu diễn các cách cài đặt đồ thị trên máy tính
+ Cài đặt các phép toán duyệt đồ thị theo chiều rộng và theo chiều sâu
Về thái độ:
+ Tự giác chuẩn bị các câu hỏi và bài tập.
+ Tự tin trong việc vận dụng kiến thức đồ thị để giải quyết các bài toán cụ thể.
b.Yêu cầu chi tiết
- Sinh viên cần chuẩn bị các kiến thức về đồ thị
- Các yêu cầu khác (như các yêu cầu chung)
c. Nội dung thực hành:
Bài tập 1: Cơ bản
Cho đồ thị định hướng chứa các số nguyên tại các đỉnh. Thứ tự các đỉnh được đánh theo
thứ tự nhập vào. Hình ảnh đồ thị định hướng được biểu diễn bởi ma trận lân cận kề trong
bộ nhớ của máy tính như sau:












0010
0100
0001
1100
Yêu cầu:


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status