Tải bản đầy đủ (.doc) (28 trang)

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

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 (239 KB, 28 trang )

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ề kĩ năng: 12
1
Về thái độ: 12
b. Yêu cầu 12
c. Nội dung thực hành: 12
Bài 1 cơ bản 12
Các bài tập ở nhà 12
d.Bài giải mẫu 13
Buổi 4 HÀNG ĐỢI + KIỂM TRA 14
a. Mục êu: 14
Về kiến thức: 14
Về kĩ năng: 14
Về thái độ: 14
b. Yêu cầu 14
c. Nội dung thực hành: 14
d.Bài giải mẫu 14
Buổi 5: CÂY TỔNG QUÁT (CÂY ĐA PHÂN, CÂY) 15
a. Mục êu: 15
Về kiến thức: 15
Về kĩ năng: 15
Về thái độ: 15
c.Nội dung thực hành: 15
Bài 1: Cơ bản 15
Bài 2: Nâng cao 16
Các bài tập về nhà 16
d.bài tập mẫu: 16
Buổi 6: CÂY NHỊ PHÂN 18
a. Mục êu: 18
Về kiến thức: 18
Về kĩ năng: 18

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

c. Nội dung thực hành: 24
Bài tập 1: Cơ bản 24
Bài tập 2: Nâng cao 25
d.Bài giải mẫu: 25
Buổi 10: TẬP HỢP, TỪ ĐIỂN, BẢNG BĂM 27
a. Mục êu: 27
Về kiến thức: 27
3
Về kĩ năng: 27
Về thái độ: 27
b. Nội dung thực hành: 27
Bài 1: Cơ bản 27
Bài 2: Nâng cao 27
Bài tập về nhà 27
d.Bài giảng mẫu 28
4
YÊU CẦU CHUNG ĐỐI VỚI MỖI BUỔI THỰC HÀNH
 Yêu cầu chung đối với từng buổi thảo luận:
o Đối với sinh viên
 Có khả năng thực hành thành thạo một ngôn ngữ lập trình
 Chuẩn bị và cài đặt trước các nội dung thực hành của mỗi buổi thực
hành
 Trao đổi với giáo viên hướng dẫn những vấn đề chưa hiểu
 Hoàn thành các nội dung thực hành theo yêu cầu của giáo viên.
o Đối với giảng viên:
 Tóm tắt các lý thuyết liên quan đến từng buổi thực hành.
 Cụ thể hóa các yêu cầu đối với nội dung thực hành từng buổi thực
hành.
 Giao nhiệm vụ thực hành cho sinh viên.
 Giám sát và điều hành các hoạt động diễn ra trong buổi thực hành.

 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:

1. Biểu diễn danh sách bởi mảng
2. 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
Bài 2 Cơ bản
Cho một danh sách chứa tối đa m 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, điểm tổng kết. Yêu cầu:
1. Biểu diễn danh sách bởi mảng
2. 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ử
6
b. Hiển thị danh sách vừa nhập.
c. Thêm một sinh viên vào cuối danh sách
d. Đếm số lượng sinh viên nữ có điểm tổng kết >8.0
e. Xóa sinh viên có họ tên là x do bỏ học lâu ngày.
Bài 3 Cơ bản
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ộ (sinh viên tự làm thêm tại nhà).
Bài 4 Nâng cao
Giả sử cần quản lý k phong ban, và danh sách các cán bộ trong từng phòng ban của một
cơ quan. Anh (chị hãy):
- Biểu diễn danh sách bằng mảng
- Thực hiện các thao tác:
o Nhập dữ liệu cho từng danh sách
o Hiển thị thông tin các cán bộ công tác tại 2 phòng ban trở nên
o Liệt kê các lãnh đạo của từng phòng ban
o Hiện thị các cán bộ có số năm công tác từ 10 năm trở nên
Các bài tập về nhà
Bài 5
Sinh viên làm các bài tập tương tự với các cấu trúc dữ liệu danh sách liên kết đơn, danh

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

Writeln(‘danh sach so nguyen :’);
For i=1 to n do
Write(L.infor[i]:4);
End;
BEGIN
Clrscr;
Write(‘Nhap so luong phan tu trong ds, n= ’);
Readln(n);
nhapDS(L,n);
hienthiDS(L);
readln;
END.
8
Buổi 2: DANH SÁCH CÀI ĐẶT BỞI CON TRỎ – DANH SÁCH LIÊN KẾT
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 liên kết đơn, danh sách liên
kết vòng, danh sách liên kết đôi. Ưu, nhược điểm của từng CTDL này.
Về kĩ năng:
o Sinh viên phải biết cài đặt các CTDL danh sách liên kết đã được học và tự
đọc, thực hành thành thạo các thao tác trên mỗi CTDL danh sách liên kết.
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: 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.

Bài 5: Thực hành các bài tập tương tự trên các CTDL danh sách liên kết đôi, danh sách
liên kế đơn vòng.
d.Bài tập mẫu
Bài 1: 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
{bai giang mau}
Use crt;
Type SingleLinkList=^Node;
Node= record
Infor:real;
Link: SingleLinkList;
End;
Var L: SingleLinkList;
n: integer;
Procedure nhapDS(var L:SingleLinkList, n: integer);
Var i: integer;
P:SingleLinkList;
Begin
L:=nill; {khoi tạo L rong}
For i =1 to n do
10
Begin
Writeln(‘Nhap so nguyen thu ’,i);
new(P); { cap phat o nho}
Readln(P.infor);
{gắn kết}
P.Link=L;
L:=P;

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.

+ 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ề ngăn xếp
- 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 một ngăn xếp chứa các số nguyên. Yêu cầu:
1. Biểu diễn ngăn xếp bởi mảng
2. Thực hiện các thao tác trên ngăn xếp:
a. Khởi tạo ngăn xếp rỗng
b. Thêm một phần tử vào ngăn xếp
c. Lấy một phần tử ra khỏi ngăn xếp
d. Nhập dữ liệu cho ngăn xếp chứa n đỉnh
e. Hiển thị dữ liệu chứa trong ngăn xếp
f. Áp dụng ngăn xếp giải bài toán chuyển đổi một số nguyên a từ hệ 10 (hệ
thập phân) sang các hệ 2, hệ 8, hệ 16.
Các bài tập ở nhà
Bài 2
Thực hiện các thao tác tương tự như bài 1 nhưng sử dụng CTDL ngăn xếp liên kết đơn
(cài đặt bởi con trỏ)
Bài 3
Cho một ngăn kéo/ngăn xếp chứa các cuốn sách. Yêu cầu:
1. Biểu diễn ngăn kéo đó bởi ngăn xếp cài đặt bởi con trỏ
12
2. Thực hiện cài đặt các thao tác sau
a. Thêm một cuốn sách vào ngăn kéo
b. Lấy một cuốn sách ở vị trí thứ k kể từ đáy ngăn kéo ra khỏi ngăn
kéo sao cho trật tự các phần tử khác không đổi.
c. Đảo ngược thứ tự các cuốn sách trong ngăn kéo
d. Hoán đổi vị trí của 2 cuốn sách tại các vị trí p1, p2 trong ngăn kéo

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

Về kĩ năng:
o Thực hành thành thạo các thao tác trên cây đa phân biểu diễn bởi các
CTDL:
 Danh sách các con của mỗi đỉnh
 Con trưởng và em liền kề của mỗi đỉnh
 Cha của mỗi đỉnh
Về thái độ:
o Tự tin trong việc áp dụng và cài đặt các CTDL cây.
c.Nội dung thực hành:
Bài 1: Cơ bản
Cho cây đa phân như hình vẽ:
Yêu cầu:
1. Viết CTDL cây biểu diễn bởi con trưởng và em liền kề của mỗi đỉnh sử dụng con
trỏ
2. Cài đặt các thao tác sau trên CTDL cây này:
a. Nhập dữ liệu cho cây (như hình vẽ)
b. Hiển thị dữ liệu trên cây
c. Tìm cha, tìm con cả, tìm các con của đỉnh k nào đó (k nhập từ bàn phím)
15
A
B C D
H I J
M N P
T
K
E F G
1
2 3 4
5
6 7

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

b. Hiển thị dữ liệu của cây vừa nhập.
{bai giang mau}
Use crt;
Const m=100; // số đỉnh tối đa trên cây
Type Node= record
Infor:real;
EldestChild: 0 n;
NextSilbing:0 n;
End;
Tree1=^Node;
Var T: Tree1;
16
n: integer;
Procedure nhapDL(var T:Tree1, n: integer);
Var i: integer;
Begin
For i =1 to n do
Begin
Writeln(‘Nhap dinh thu ’,i);
writeln(‘Nhap thong tin’);
Readln(T[i].infor);
writeln(‘Nhap ID con truong cua dinh’);
Readln(T[i].EldestChild);
writeln(‘Nhap Id em kề của đinh ’);
Readln(T[i].NextSibling);
End
End;
Procedure hienthiCay(T: Tree1);
Var i: integer;
Begin

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:

a. Nhập dữ liệu cho cây
b. Hiển thị dữ liệu trên cây
c. Duyệt cây theo thứ tự trước, thứ tự giữa, thứ tự sau
Bài 2 Nâng cao
Cho một cây biểu thức nhị phân.Yêu cầu:
1. Biểu diễn cây bởi CTDL con trỏ
2. Thực hiện 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.
18
d.bài tập mẫu:
Giáo viên cài đặt mẫu một số theo tác trên CTDL cây nhị phân cụ thể.
19
Buổi 7: CÂY NHỊ PHÂN TÌM KIẾM
a. Mục tiêu:
Về kiến thức:
+ Hiểu kiến thức tổng quan về cây NPTK
+ Nắm vững các cánh biểu diễn cây NPTK trên máy tính
+ Nhận xét, so sánh các cách biểu diễn cây NPTK
Về kĩ năng:
+ Biểu diễn các cách cài đặt cây NPTK trên máy tính
+ Cài đặt các phép toán cơ bản trên cây NPTK ứng với mỗi cách biểu diễn
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 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

e. Đánh mức cho các đỉnh trên cây
f. Tìm chiều cao của cây
d. Bài giải mẫu
Giáo viên giải mẫu cho sinh viên một số ý trong bài tập số 1
21
22
Buổi 8: ÔN TẬP CÁC CTDL CÂY + KIỂM TRA
a. Mục tiêu:
Về kiến thức:
Sinh viên cần nắm vững toàn bộ kiến thức về cây.
Về kĩ năng:
Hoàn thiện các thao tác trên cây. Có thể cài đặt thuật toán bất kỳ trên cây
Về thái độ:
Tự tin trong lập trình cài đặt các thao tác trên các CTDL cây.
b.Yêu cầu chi tiết
- Ôn tập lại toàn bộ các kiến thức về cây
- Các yêu cầu khác (như yêu cầu chung)
c. Nội dung thực hành:
- Hoàn thiện các bài tập thực hành ở 3 buổi học thực hành trước. Cài thêm một số thao tác
phức tạp khác trên cây mà giáo viên yêu cầu.
- Kiểm tra
d. Bài giải mẫu
23
Buổi 9: ĐỒ THỊ
a. Mục tiêu:
Về kiến thức:
+ Hiểu kiến thức tổng quan về mô hình dữ liệu đồ thị
+ Nắm vững các cánh biểu diễn đồ thị trên máy tính
+ Nhận xét, so sánh các cách biểu diễn đồ thị
Về kĩ năng:

+ 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:

1. Từ hình ảnh này, hãy biểu biễn ngược lại hình ảnh đồ thị
2. Cài đặt thực hiện các thao tác sau trên đồ thị:
a. Nhập dữ liệu cho đồ thị
b. Hiển thị dữ liệu trên đồ thị
c. Xác định bậc của đỉnh có số thứ tự là k.
24
Bài tập 2: Nâng cao
Cho đồ thị như hình vẽ:
Yêu cầu:
1. Biểu diễn đồ thị bằng ma trận lân cận (kề).
2. Cài đặt các thao tác sau trên đồ thị
a. Nhập dữ liệu cho đồ thị (như hình)
b. Hiển thị để kiểm tra dữ liệu nhập vào
c. Duyệt đồ thị theo chiều rộng, chiều sâu.
d. Tìm các đường đi từ đỉnh x đến đỉnh y.
d.Bài giải mẫu:
Giáo viên cài đặt một số thao tác trên CTDL đồ thị ma trận kề.
25
B
C
E
A
D
a)
1 2
3
4
5

×