Hãy viết 1 thủ tục/hàm in lên màn hình giá trị của các phần tử đang tồn tại trong cây theo thứ tự NLR.. Ghi chú: một phần tử được gọi là có tồn tại trong cây nếu So_lan > 0... Hãy nêu 1
Trang 1Bài tập Tổng hợp CTDL 1 (Phần 2) Nguyễn Tri Tuấn – Khoa CNTT, đại học KHTN TP.HCM
-oOo -
Bài 13:
Cho một cây nhị phân tìm kiếm t có cấu trúc nút là BST_NODE được khai báo như sau:
struct BST_NODE {
int So_lan; // Số lần xuất hiện của khoá trong cây struct BST_NODE *Left, *Right;
}
struct BST_TREE {
struct BST_NODE *pRoot; // Nút gốc của cây }
a Hãy viết thủ tục/hàm thực hiện thao tác xoá phần tử có khoá X Cách xoá như sau:
• Nếu phần tử X có tồn tại, giảm field So_lan của nó 1 đơn vị
• Nếu phần tử X không tồn tại, thông báo
b Hãy viết 1 thủ tục/hàm in lên màn hình giá trị của các phần tử đang tồn tại trong cây theo thứ tự NLR
Ghi chú: một phần tử được gọi là có tồn tại trong cây nếu So_lan > 0
Bài 14:
Cho thuật toán như sau:
for (i = 0; i < n-1; i++) {
max = i + 1;
for (j = i+1; j<n; j++)
if (a[j] < a[max]) max = j;
if (a[max] < a[i]) {
Temp = a[max];
a[max] = a[i];
a[i] = Temp;
} }
Hãy tính chi phí cho thuật toán trên trong các trường hợp tốt nhất, xấu nhất, trung bình:
Bài 15:
Cho một hàng đợi q và 1 đoạn chương trình như sau:
struct QUEUE q;
int x = 5, y = 3;
EnQueue(q, 8);
EnQueue(q, 9);
EnQueue(q, y);
DeQueue(q, x);
EnQueue(q, 18);
DeQueue(q, x);
Trang 2while (IsEmpty(q) == 0)
{
DeQueue(q, y);
printf(“%d “, y);
}
Hãy cho biết kết quả in ra màn hình khi thi hành đoạn chương trình trên là gì ?
Bài 16:
a Hãy nêu 1 ưu điểm và 1 khuyết điểm mà theo bạn là tiêu biểu nhất của phương pháp
sắp xếp Quick-sort khi cài đặt bằng đệ qui
b Hãy nêu 1 điểm khác biệt cơ bản nhất (theo bạn) của cấu trúc Danh sách liên kết đơn
so với cấu trúc Mảng động
Bài 17:
Xét thuật toán tìm tuần tự một số nguyên X cho trước trong một mảng a gồm 1000 số nguyên
Trong từng trưòng hợp sau, hãy cho biết số phần tử tối đa có thể được duyệt trong quá trình tìm kiếm:
a Trường hợp 1: các phần tử của mảng a chưa được sắp xếp
b Trường hợp 2: các phần tử của mảng a được sắp xếp tăng dần
c Trường hợp 3: các phần tử của mảng a được sắp xếp giảm dần
Bài 18:
Cho 2 xâu liên kết T1 và T2 Giả thiết mỗi phần tử của chúng chỉ có 2 thông tin :
- Khóa của nút (là số nguyên)
- Con trỏ đến phần tử kế
Viết chương trình tạo một xâu liên kết T nối từ 2 xâu T1 và T2 sao cho :
- Các phần tử trong T có giá trị tăng
- Không có trường hợp trùng nhau
- Xác định chi phí thuật toán
Bài 19:
Cho một xâu đơn T, mỗi nút của nó chứa các thông tin sau :
Key : kiểu Integer
Next : con trỏ chỉ đến phần tử kế
Viết chương trình C/Pascal tách xâu T thành 2 xâu T1 và T2, trong đó T1 chứa các phần tử có khóa > 0 và T2 chứa các phần tử có khóa < 0 Đánh giá chi phí thuật toán
Bài 20:
Cho một cây nhị phân tìm kiếm, mỗi phần tử của cây là một số nguyên Nếu áp dụng phương pháp duyệt NLR ta có kết quả:
5 6 3 7 9 2 0 8 4
Nếu áp dụng phương pháp duyệt LNR ta có kết quả:
7 2 4 3 5 9 6 1 0
Hãy vẽ cây trên
Bài 21:
Trang 3Cho một cây nhị phân có các phần tử sau (mỗi phần tử xuất hiện 1 lần):
8 5 4 0 1 3 7 9 2
Nếu áp dụng phương pháp duyệt NLR để tính tổng các nút lá, ta có kết quả bằng 22
Nếu áp dụng phương pháp duyệt LNR để tính tổng các nút không phải là lá, ta có kết quả bằng 18
Hãy chỉ ra các nút lá của cây
Bài 22:
Cho một cây nhị phân có các nút như sau:
8 7 4 5 9 6 3 1 2
Biết tổng các nút lá bằng 39
Hãy chỉ ra các nút lá của cây trên
Bài 23:
Cho một cây nhị phân có cấu trúc nút là NODE, hãy:
a Viết thủ tục/hàm để tính tổng số nút có 1 nhánh con (con trái HAY con phải) bằng cách dùng thuật toán duyệt gốc giữa NLR
b Thiết lập 1 công thức đệ qui để thực hiện yêu cầu ở câu [a] Cài đặt công thức này thành thủ tục/hàm
Bài 24:
Hãy nêu 2 ưu điểm của phương pháp sắp xếp Shaker sort so với phương pháp sắp xếp Bubble sort
- Hết phần 2 -