Baøi taäp Toång hôïp CTDL 1 (Phaàn 3) Nguyeãn Tri Tuaán – Khoa CNTT, ñaïi hoïc KHTN doc

2 160 0
Baøi taäp Toång hôïp CTDL 1 (Phaàn 3) Nguyeãn Tri Tuaán – Khoa CNTT, ñaïi hoïc KHTN doc

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

Thông tin tài liệu

Nguyen Tri Tuan – Khoa CNTT ĐHKHTN Tp.HCM 1/2 Bài tập Tổng hợp CTDL 1 (Phần 3) Nguyễn Tri Tuấn – Khoa CNTT, đại học KHTN TP.HCM oOo Bài 25: Viết thuật toán tìm phần tử thay thế trong thao tác “Xoá một phần tử P có 2 con trong cây BST”, sử dụng nguyên tắc “Tìm phần tử tận cùng bên trái của nhánh phải P”. Bài 26: Cho một danh sách liên kết đơn với phần tử đầu là Head. Hãy cho biết tác dụng của hàm sau nếu lời gọi hàm là fn(Head). int fn ( NODE *p ) { if (p<>NULL) return (1 + fn(p->Next)); else return 0; } Bài 27: Hãy phát biểu công thức đệ qui để tính các giá trò sau đây: a. Số nút của cây nhò phân tìm kiếm. b. Tổng giá trò các nút trong cây (giả sử mỗi phần tử là một số nguyên). Cài đặt thành thủ tục/hàm các công thức đã nêu ở trên. Bài 28: Giữa cấu trúc cây nhò phân tìm kiếm và cấu trúc mảng các phần tử được sắp thứ tự tăng dần, có những điểm giống và khác nhau như thế nào ? Bài 29: Ta có 4 đối tượng: - Điểm (pixel): bao gồm toạ độ x, tọa độ y. - Đoạn thẳng (line): được xác đònh bởi 2 điểm (x1, y1) là điểm bắt đầu – (x2, y2) là điểm kết thúc. - Hình chữ nhật (rectangle): được xác đònh bởi 2 điểm (x1, y1) là góc trên bên trái – (x2, y2) là góc dưới bên phải. - Hình tròn (circle): được xác đònh bởi một điểm (x, y) là tâm; và R là bán kính. Hãy đònh nghóa (bằng C/PASCAL) các kiểu dữ liệu cho 4 đối tượng trên mà anh(chò) cho là hợp lý nhất. Bài 30: Cho một xâu đơn có phần tử đầu là Head, mỗi phần tử của xâu bao gồm: Key : khóa lưu trữ, kiểu int; Next : con trỏ đến phần tử kế tiếp trong xâu; a. Hãy viết một hàm không đệ qui đếm số phần tử trong xâu. b. Hãy viết một hàm đệ qui đếm số phần tử trong xâu. Nguyen Tri Tuan – Khoa CNTT ĐHKHTN Tp.HCM 2/2 Bài 31: Cho một mảng a gồm n phần tử kiểu Integer. Ta có thể sắp xếp mảng a bằng cách : + Từ mảng a, tạo một cây nhò phân tìm kiếm T. + Duyệt cây T và đưa các nút trở lại mảng a. Yêu cầu : a. Cho biết phương pháp duyệt cây T để đưa các nút lên mảng sao cho mảng được sắp tăng dần. b. Cho biết cấu trúc cây T (khai báo bằng C/PASCAL). c. Xây dựng các thủ tục (bằng C/PASCAL): + Tạo cây nhò phân T từ mảng a. + Thủ tục duyệt cây để đưa các phần tử trở lại mảng sao cho mảng được sắp tăng dần. Bài 32: Hãy cài đặt thuật toán Quicksort không dùng đệ qui. Bài 33: a. Hãy cài đặt thuật toán duyệt cây nhò phân (NLR) không dùng đệ qui (dùng stack) b. Hãy cài đặt thuật toán duyệt cây nhò phân theo mức không dùng đệ qui (dùng queue) Bài 34: hãy so sánh (ngắn gọn) sự giống và khác nhau của 2 cấu trúc Cây nhò phân tìm kiếm và Danh sách liên kết đơn. Bài 35: Cho một danh sách liên kết đơn. Cho biết đòa chỉ P, Q tại các vò trí như hình 1. Hãy viết các lệnh cần thiết để chuyển danh sách sang dạng biểu diễn ở hình 2. Bài 36: Cho một cây nhò phân tìm kiếm với gốc là Root, giá trò lưu trữ tại mỗi nút là một số nguyên (int). Hãy viết đoạn chương trình tìm phần tử nhỏ nhất trong cây. Hết phần 3 . Nguyen Tri Tuan – Khoa CNTT ĐHKHTN Tp.HCM 1/ 2 Bài tập Tổng hợp CTDL 1 (Phần 3) Nguyễn Tri Tuấn – Khoa CNTT, đại học KHTN TP.HCM oOo Bài 25: Viết thuật. được xác đònh bởi 2 điểm (x1, y1) là điểm bắt đầu – (x2, y2) là điểm kết thúc. - Hình chữ nhật (rectangle): được xác đònh bởi 2 điểm (x1, y1) là góc trên bên trái – (x2, y2) là góc dưới bên. trong xâu. b. Hãy viết một hàm đệ qui đếm số phần tử trong xâu. Nguyen Tri Tuan – Khoa CNTT ĐHKHTN Tp.HCM 2/2 Bài 31: Cho một mảng a gồm n phần tử kiểu Integer. Ta có thể sắp xếp mảng a bằng

Ngày đăng: 01/08/2014, 07:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan