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

Một phần của tài liệu Bài những đề thi và lời giải chi tiết cấu trúc dữ liệu (Trang 78 - 85)

- 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)

Một phần của tài liệu Bài những đề thi và lời giải chi tiết cấu trúc dữ liệu (Trang 78 - 85)

Tải bản đầy đủ (PDF)

(109 trang)