- ngược với thứ tự nhập vào + Hủy một phần tử bất kỳ trong đa thức
Với một chữ cái tượng trưng cho thao tác thêm chữ cái tương ứng vào hàng đợi, dấu * tượng trưng cho thao tác lấy nội dung một phần tử trong
hàng đợi, dấu * tượng trưng cho thao tác lấy nội dung một phần tử trong hàng đợi in lên màn hình.
2) Hãy cho biết sau khi hoàn tất chuỗi thao tác trên, những gì xuất hiện trên màn hình ? 3) Viết dạng cài đặt hàng đợi trên bởi mảng
4) Với cách cài đặt trên, hãy viết thủ tục thêm một k{ tự vào hàng đợi, lấy một k{ tự ra từ hàng đợi để hiển thị lên màn hình
………Hết……….
Thí sinh không được sử dụng tài liệu, không ghi vào đề thi
CB coi thi không giải thích gì thêm và nộp lại đề thi cho phòng chức năng theo quy chế của bộ
Mã đề 21
Câu 1
+ Khái niệm ngăn xếp, hàng đợi (1 đ)
- Ngăn xếp là một danh sách tuyến tính trong đó phép bổ sung một phần tử vào ngăn xếp và phép loại bỏ một phần tử ra khỏi ngăn xếp đều được thực hiện ở một đầu, đầu đó gọi là đỉnh của ngăn xếp
- Hàng đợi là một danh sách tuyến tính trong đó phép bổ sung một phần tử vào hàng đợi được thực hiện ở một đầu còn phép loại bỏ một phần tử ra khỏi hàng đợi được thực hiện ở đầu kia
+ Có hai phương pháp cài đặt ngăn xếp: Bởi mảng và bởi con trỏ: (1 đ)
- Sử dụng mảng:
a) Const n = <số phần tử tối đa trong ngăn xếp>; b) Type Stack = Record
Top: 0..n;
Element: array[1..n]of Item;
End; Var S: Stack;
- Sử dụng con trỏ:
Type Stack = ^Nut; Nut = Record
Info: Item; Next : Stack; End;
Var Top: Stack;
+ Có thể cài đặt hàng đợi bởi con trỏ hoặc bởi mảng:
- Sử dụng mảng
Const n = <số phần tử tối đa trong hàng đợi> Type QUEUE = Record
Info: Item; Front, Real: 0.. n; End;
Var Q: QUEUE;
- Sử dụng con trỏ:
Type Nut = Record
Info: Item; Next: ^Nut; End;
Queue = ^ Nut; Var F, R: Queue;
+ Ví dụ minh hoạ ngăn xếp, hàng đợi: tự cho
Câu 2
2) Kết quả: 79742 (1 đ)
3) Thủ tục Push, pop (1 đ) Câu 3 Tương tự câu 2 đề 20
ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN ………
Câu 1 (2 điểm)
Định nghĩa từ điển, Tư tưởng của bảng băm sử dụng trong việc cài đặt từ điển. Viết dạng cài đặt từ điển bởi bảng băm mở. Với dạng cài đặt này anh(chị) hãy cài đặt phép toán tìm xem trong từ điển T có chứa từ x hay không? (x là một từ được nhập từ bàn phím)
Câu 2( 4 điểm)
Cho một danh sách liên kết đơn (DSLK) có nút đầu danh sách được trỏ bởi con trỏ L, các phần tử trong danh sách có kiểu dữ liệu Item nào đó.
1) Viết các hàm trên DSLK đơn này:
a. insert_first (thêm một phần tử vào đầu danh sách), b. insert_last (thêm một phần tử vào cuối danh sách), c. remove_first(loại bỏ phần tử đầu tiên trong danh sách), d. remove_last(loại bỏ phần tử cuối cùng trong danh sách)
2) Dùng các hàm ở { 1) để tạo ra một hàng đợi và một ngăn xếp chứa n phần tử; (n là số nguyên dương nhập từ bàn phím)
3) Lấy các phần tử trong ngăn xếp và hàng đợi ra hiển thị lên màn hình.
Câu 3 ( 2 điểm)
Dựng đồ thị có hướng G có giá trị ma trận lân cận kề như sau:
1 2 3 4 5 6
1 0 1 0 0 1 1
2 1 1 1 0 0 1
Mã đề thi: 22
ĐỀ THI HẾT HỌC PHẦN Môn thi: Cấu trúc dữ liệu và giải thuật; Hệ: Chính quy Môn thi: Cấu trúc dữ liệu và giải thuật; Hệ: Chính quy
3 0 1 0 1 1 1
4 1 0 1 0 1 1
5 1 0 0 1 0 1
6 1 1 1 1 1 1
Nêu kết quả phép duyệt đồ thị G theo chiều sâu, và chiều rộng xuất phát từ V1. ………Hết……….
Thí sinh không được sử dụng tài liệu, không ghi vào đề thi
CB coi thi không giải thích gì thêm và nộp lại đề thi cho phòng chức năng theo quy chế của bộ
Mã đề 22
Câu 1
Tương tự câu 1 đề 15
Câu 2
Các hàm:
1) procedure insert_first(x:item, var L: list); ,thêm phần tử x vào đầu danh sách L- (0.5 đ)
Var m:list; Begin new(M); m^.infor:= x; M^.next:=L; l:=M; End;
2)procedure insert_last(x: Item, var L: list); (thêm một phần tử x vào cuối danh sách L) (0.5 đ)
var M, p:list; Begin
new(M); M^.infor:= x; p^.next := M; m^.next:=nil; End;
3) Procedure remove_first(var m: list; var L:list )(loại bỏ phần tử đầu tiên trong danh sách L, M trỏ tới phần tử sau khi bị loại bỏ khỏi danh sách); (0.5 đ)
Begin
if (L<>nil) then M:=L; L:=L^.next; End;
4) Procedure remove_last(var M:list; var L:list)(loại bỏ phần tử cuối cùng trong danh sách L; M trỏ tới nút sau khi loại bỏ khỏi danh sách) (0.5 đ)
var p,q:list; Begin if L<>nil Then Begin p:=L; q:=p^.next; while (q^.next<>nil) do begin p:q; q:=q^.next; end; M:=q; p^.next:=nil; End; End;
a)Tạo ngăn xếp
procedure taoNgănxep(var Top:list); var n, i, x:integer;
Begin
writeln(‘Nhap n=’); readln(n); for i:= 1 to n do
write(‘Nhạp gia trị =’); readln(x); insert_first(x, Top); End;
b) Tạo hàng đợi
procedure taohangdoi(var L,F:list); var n, i, x:integer;
Begin
L:=nil; F:=nil;
writeln(‘Nhap n=’); readln(n); for i:= 1 to n do
write(‘Nhạp gia trị =’); readln(x); insert_last(x, F); End;
Lấy các phần tử trong hàng đợi và trong ngăn xếp hiển thị lên màn hình(1 đ)
procedure hienthi_nganxep(top:list); var m:list; begin while top<>nil do begin remove_firsts(M, Top);
write(M^.infor); end;
Tương tự với hàng đợi
Câu 3
1. Dựng đồ thị (1đ)
2) Kết quả duyệt (1đ)
Kết quả duiyệt theo chiều rộng: 1 2 4 5 6 3 Kết quả duyệt theo chiều sâu: 12 3 4 5 6
ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN
………
Câu 1 (2 điểm)
Định nghĩa từ điển, các phép toán trên từ điển, trình bày phương pháp cài đặt từ điển bởi bảng băm mở (tư tưởng, dạng cài đặt). Cho ví dụ minh họa
Câu 1(3 điểm)