Khái niệm cây, cài đặt cây(1 đ)

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

+ Cài đặt cây bằng danh sách cha của mỗi đỉnh:

Const n = <số đỉnh tối đa trên cây>; Type Node = Record

Info: Item; Parent: 0..n; End;

Tree = array[1..n] of Node; Var T: Tree;

Trong đó:

- Info: Chứa thông tin của đỉnh

- Item: Kiểu dữ liệu của dữ liệu lưu tại đỉnh của cây

2) Viết hàm tìm số thứ tự của đỉnh là cha của đỉnh thứ k trên cây T (1 đ)

Procedure Tim(k: byte; T: Tree):0..n; Begin

Parent := T[k].parent; End;

Câu 2

+ Có hai phương pháp để xác định một tập hợp trong toán học: (0.5 đ)

- Liệt kê tất cả các phần tử trong tập hợp (nếu tập hợp đó là hữu hạn) - Nêu lên các đặc trưng chung của các phần tử trong tập hợp

1) Viết dạng cài đặt tập hợp bởi véc tơ bít: (0.5 đ)

const n = <số phần tử tối đa trong tập hợp>; type set = array[1..n] of boolean;

2) Viết các thủ tục tương ứng với các yêu cầu: a) Nhập giá trị cho tập A, B: (0.5 đ)

procedure Nhap(var A: set); var i: integer; c: char; Begin

Writeln(‘Nhap giá trj cho các phần tử của tập hợp!’); Repeat

Write(‘Nhap giá trị I = ’); readln(i); A[i]:= true;

Write(‘Co nhap nua khong? (c/k)’); read(c); Until (c=’k’)or(c=’K’);

End;

Gọi thủ tục nhập trên, đối số truyền vào là B, để nhập dữ liệu cho tập B b)Tìm hợp, giao, trừ của hai tập hợp A,B (0.5 đ)

* giao của A và B

procedure Giao(A,B: set; var C: set);

var i: integer; Begin

For i:=1 to n do

C[i]:= A[i] and B[i]; End;

* Tìm hợp của A và B:

procedure Hop(A,B: set; var C: set); var i: integer;

For i:=1 to n do

C[i]:= A[i]or B[i]; End; (adsbygoogle = window.adsbygoogle || []).push({});

* Tìm hiệu A\B

procedure Hieu(A,B: set; var C: set); var i: integer;

Begin

For i:=1 to n do

C[i]:= A[i] and notB[i]; End;

c) Tìm x trong tập A: Cách làm: kiểm tra xem a[x] = true hay false, nếu = true, kết luận tìm thấy, ngược lại kết luận không tìm thấy (0.5 đ) ngược lại kết luận không tìm thấy (0.5 đ)

d) Thêm số nguyên x và tập hợp A: Đặt A[x]:= true; (0.5 đ) e) Loại bỏ x ra khỏi tập hợp A: Đặt A[x]:= false; (0.5 đ) e) Loại bỏ x ra khỏi tập hợp A: Đặt A[x]:= false; (0.5 đ)

3) Các phần tử trong tập hợp phải là các số nguyên hoặc được mã hóa bởi các số nguyên thì mới có thể cài đặt tập hợp bởi véc tơ bít (0.5 đ)

Câu 3

Tương tự câu 3 đề 12

ĐẠI HỌC THÁI NGUYÊN

KHOA CÔNG NGHỆ THÔNG TIN ………

Mã đề thi: 15

ĐỀ 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

Câu 1(2 điểm)

Định nghĩa từ điển, tư tưởng của bảng băm mở. 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(3 điểm )

Giả sử cần quản l{ một cây chứa các số nguyên. Hãy viết dạng cài đặt cây bằng mảng danh sách các con của mỗi đỉnh. Hãy dựng một cây có 12 đỉnh và minh hoạ cách cài đặt trên bằng hình ảnh cụ thể với cây vừa dựng. Nêu cách tạo một cây

Câu 3 (3 điểm)

Giả sử cần quản l{ một danh sách các số nguyên. Hãy viết dạng cài đặt danh sách này bằng mảng, với cấu trúc danh sách đã cài đặt, viết các chương trình con thực hiện các yêu cầu như sau:

1) Tính trung bình cộng của các số dương lưu trong danh sách 2) Sắp xếp danh sách tăng dần

3) Hiển thị danh sách 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ộ

Câu 1

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