1. Trang chủ
  2. » Công Nghệ Thông Tin

Ôn tập, cấu trúc dữ liệu

34 1,4K 13

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 763 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hãy viết các khai báo thích hợp để cài đặt một danh sách liên kết chứa các phần tử là phân số.. Dùng các khai báo đó để viết:  Thủ tục để tạo danh sách L rỗng.. Hãy viết các khai báo t

Trang 1

Ôn tập môn CTDL

Năm 2013 PGS.TS Trần Cao Đệ

Trang 2

Bài 1 – LT - TH

Một phân số a/b (với a,b là số nguyên và b khác 0) được biểu diễn như một bản ghi có hai trường: Tử số và mẫu số Hãy viết các khai báo

thích hợp để cài đặt một danh sách liên kết chứa các phần tử là phân

số Dùng các khai báo đó để viết:

 Thủ tục để tạo danh sách L rỗng

 Thủ tục thêm một phần tử vào đầu danh sách

 Viết thủ tục làm tối giản tất cả các phân số có trong danh sách (phân

số tối giản thì ước chung lớn nhất của tử số và mẫu số bằng 1)

 Thủ tục (hoặc hàm) tìm trong danh sách L hai phần tử có tích bằng 1 Nếu tìm thấy thì trả ra một cặp con trỏ trỏ đến hai phần tử đó Nếu không tìm thấy thì trả ra cặp (NULL,NULL) trong đó NULL là giá trị qui ước con trỏ không có giá trị

 Thủ tục tìm kiếm và xóa các phần tử của danh sách có tử số lớn hơn mẫu số

Trang 3

Bài 12

 Một phân số a/b (với a,b là số nguyên và b khác 0) được

biểu diễn như một bản ghi có hai trường: Tử số và mẫu số Hãy viết các khai báo thích hợp để cài đặt một danh sách liên kết chứa các phần tử là phân số Dùng các khai báo đó

để viết:

• Thủ tục để tạo danh sách L rỗng.

• Thủ tục thêm một phần tử vào đầu danh sách.

• Thủ tục in ra các phần tử trong danh sách

• Viết thủ tục làm tối giản tất cả các phân số có trong danh sách (phân

số tối giản thì ước chung lớn nhất của tử số và mẫu số bằng 1).

• Thủ tục tìm kiếm và xóa các phần tử của danh sách có tử số lớn

hơn mẫu số.

• Thủ tục (hoặc hàm) tìm trong danh sách L hai phần tử có tích bằng

1 Nếu tìm thấy thì trả ra một cặp con trỏ trỏ đến hai phần tử đó

Trang 4

} ElementType; //ki?u c?a ph?n t? trong danh sách

typedef struct Node{

ElementType Element

Node* Next;

};

typedef Node* Position; // Ki?u v? trí

typedef Position List;

Trang 5

void MAKENULL_LIST(List& Header){

(Header)=(Node*)malloc(sizeof(Node)); Header->Next= NULL;

}

Trang 6

void INSERT_FIRST_LIST(ElementType X, List& L){ Position T=(Node*)malloc(sizeof(Node));

Trang 7

void DELETE_LIST(Position P, List& L){ Position T;

Trang 8

 for (int i=1; i<=n; i++){

 printf("nhap phan so thu %d: ",i);

Trang 9

void PRINT_LIST(List& L){

printf ("cac phan so trong danh sach la: ");

for(Position p = L; p->Next!=NULL; p=p->Next)

printf("%d / %d; ",p->Next->Element.Tuso,

p->Next->Element.Mauso); printf("\n");

}

Trang 10

int UCLN(int a, int b){

if (a==b) return a;

else if (a>b) return UCLN(a-b,b); else return UCLN(a,b-a);

}

Trang 11

p->Next->Element.Mauso/UC; }

}

}

Trang 12

void TIM_XOA(List& L){

Position P=L;

while (P->Next!=NULL){

if (P->Next->Element.Tuso> P->Next->Element.Mauso) DELETE_LIST(P,L);

else

P=P->Next;

}

}

Trang 13

ketqua.r = p;

ketqua.t = q;

return ketqua;

}q=q->Next;

}

p=p->Next;

}

return ketqua;

Trang 14

 int main(){

 List L;

 MAKENULL_LIST(L); //Kh?i t?o danh sách r?ng

 READ_LIST_REVERSE(L);

 printf("Danh sach vua nhap: ");

 PRINT_LIST(L); // In danh sach len man hinh

 }

Trang 15

int main(){

List L;

MAKENULL_LIST(L); //Kh?i t?o danh sách r?ng READ_LIST_REVERSE(L);

printf("Danh sach vua nhap: ");

PRINT_LIST(L); // In danh sach len man hinh LAM_TOI_GIAN(L);

PRINT_LIST(L); // In danh sach len man hinh }

Trang 16

Bài 2 – LT - TH

Một điểm trong mặt phẳng được biểu diễn bằng một cặp tọa độ (x,y), với x,y là số thực Như vậy, có thể cài đặt điểm như là một bản ghi có hai

trường x,y Hãy viết các khai báo thích hợp để cài đặt một danh sách

liên kết chứa các phần tử là điểm Dùng các khai báo đó để viết:

 Thủ tục để tạo danh sách L rỗng

 Thủ tục thêm vào đầu danh sách một phần tử

 Thủ tục tìm kiếm và xóa các phần tử của danh sách là các điểm có khoảng cách tới gốc tọa độ lớn hơn k, với k là một số nguyên nào đó

 Thủ tục in ra các phần tử của danh sách L là các điểm nằm trên

đường thẳng y=x

 Thủ tục (hoặc hàm) tìm trong danh sách L hai phần tử đối xứng nhau qua gốc tọa độ (0,0) Nếu tìm thấy thì trả ra một cặp con trỏ trỏ đến hai phần tử đó Nếu không tìm thấy thì trả ra cặp (NULL,NULL) trong

đó NULL là giá trị qui ước con trỏ không có giá trị

Trang 19

Bài 5-LT-TH

Một sinh viên được biểu diễn như một bản ghi có 3 trường:

 MSSV: là số nguyên, vd: 1234

 Họ tên: chuỗi kí tự, vd “ Le Hoa Binh”

 Ngày tháng năm sinh: chuỗi kí tự, vd “10/11/1985”

Hãy cài đặt một hàng bằng con trỏ chứa các phần tử là sinh viên Viết chương trình cho phép:

- Nhập vào một số sinh viên, lưu trữ trong hàng

- Xóa lần lượt các SV trong hàng và in ra các sinh viên

theo thứ tự xóa

Trang 20

Bài 6 - LT

Cho biểu thức: (a+b-c)*(d-e*f)/(a+e)

Hãy vẽ cây biểu diễn cho biểu thức Sau đó, viết các biểu thức duyệt:

 Tiền tự

 Hậu tự

Trang 21

e a

a

*

e d -

Tien tu: / * - + a b c – d * e f + a e

Hau tu: a b + c – d e f * - * a e + /

Trang 22

 Thủ tục tạo cây mới

Create2(v,T1,T2)

 Các thủ tục/ hàm để duyệt tiền

tự, trung tự, hậu tự cây

Chương trình phải tự tạo 1 cây (ít nhất 6 nút), in các biểu thức duyệt cây

Trang 23

Bài 8 – LT - TH

Một cây nhị phân được cài đặt bằng con trỏ, mỗi nút (Node) có

4 trường: trường value chứa nhãn của nút, trường left trỏ đến con trái, trường right trỏ đến con phải, trường parent trỏ đến nút cha Hãy viết các khai báo thích hợp để cài đặt cây nhị

phân có nhãn là số nguyên Dùng các khai báo đó để viết:

 Hàm kiểm tra hai nút n,m có phải là hai nút anh em ruột hay không Hàm phải trả ra true nếu n,m là hai nút anh em ruột (có cùng nút cha); ngược lại hàm trả về false.

 Hàm kiểm tra một nút n có phải là tổ tiên (ancestor) của nút m hay không Hàm trả về true nếu n là tổ tiên của m; ngược lại hàm trả về false.

 Hàm trả ra số nút chỉ có một nút con trên cây.

 Thủ tục duyệt cây theo mức

Trang 24

Bài 9 – LT - TH

Hãy viết các khai báo thích hợp để cài đặt một cây tìm kiếm

nhị phân chứa các khóa là số nguyên Dùng các khai báo

đó để viết:

 Hàm kiểm tra một nút có phải là nút lá hay không Hàm phải trả về true nếu nút là nút lá, trả về false nếu nút

không phải là nút lá.

 Hàm đếm số nút chỉ có một nút con trên cây.

 Hàm tìm kiếm một nút có khóa k trên cây Hàm phải trả ra con trỏ trỏ đến nút chứa khóa k hoặc trả ra NULL nếu

không có nút nào chứa khóa k

 Thủ tục thực hiện duyệt cây theo mức.

Trang 25

- Dùng bảng băm mở.

- Bảng băm đóng với chiến lược giải quyết đụng

độ là phép thử cầu phương.

Trang 26

5812

Trang 28

Bài 11-TH

Một điểm trong mặt phẳng được biểu diễn bằng một cặp tọa độ (x,y), với x,y là số thực Như vậy, có thể cài đặt điểm như là một bản ghi có

hai trường x,y Hãy cài đặt hàng ưu tiên chứa

các phần tử là điểm với độ ưu tiên theo tọa độ

x

Chương trình phải cho phép:

- Nhập vào các điểm, lưu trữ trong hàng ưu tiên

- In ra các điểm dạng (x,y) theo thứ tự

DeleteMin.

Trang 29

Bài 12-TH

Một sinh viên được biểu diễn như một bản ghi có 3 trường:

 MSSV: là số nguyên, vd: 1234

 Họ tên: chuỗi kí tự, vd “ Le Hoa Binh”

 Ngày tháng năm sinh: chuỗi kí tự, vd “10/11/1985”

Hãy cài đặt bảng băm mở chứa các phần tử là sinh viên hàm băm dựa trên mã sinh viên và có dạng h(x)=(x.mssv % B)

Viết chương trình cho phép:

- Nhập vào một số sinh viên

- Tìm kiếm một Sv khi cho MSSV

- Xóa một SV khi biết MSSV.

- In danh sách tất cả sinh viên có trong bảng băm theo thứ tự trong bảng băm

Trang 30

HẾT MÔN HỌC

Good luck !

Trang 31

7 8 9

29

26

14

23 46

58 12

Trang 33

 Hãy vẽ hình minh họa bảng băm đóng khi ta

lần lượt đưa vào bảng băm đóng các khóa sau: 3, 8, 5, 10, 26, 36, 15, 38, 17, 24

 Cho biết B=13, hàm băm h(x)=x mod B và

hàm băm lại hi(x)= (x+i2) mod B.

 Viết các khai báo thích hợp để cài đặt bảng

băm mở Dùng các khai báo đó để viết hàm thêm một phần tử vào bảng băm

Trang 34

Ôn tập

 Bài 1: danh sách liên kết

 Bài 2 : chương cây

 Bài 3: chương 4

Ngày đăng: 21/10/2014, 20:09

HÌNH ẢNH LIÊN QUAN

Bảng băm mở - Ôn tập, cấu trúc dữ liệu
Bảng b ăm mở (Trang 26)
Bảng băm - Ôn tập, cấu trúc dữ liệu
Bảng b ăm (Trang 26)

TỪ KHÓA LIÊN QUAN

w