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

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

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

Thông tin tài liệu

Nguyen Tri Tuan – Khoa CNTT ĐHKHTN Tp.HCM 1/3 Bà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 Key; // Khoá của nút 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 } struct BST_TREE t; // Cây t 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); EnQueue(q, 22); Nguyen Tri Tuan – Khoa CNTT ĐHKHTN Tp.HCM 2/3 while (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: Nguyen Tri Tuan – Khoa CNTT ĐHKHTN Tp.HCM 3/3 Cho 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 . Nguyen Tri Tuan – Khoa CNTT ĐHKHTN Tp.HCM 1/ 3 Bà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. 7 2 4 3 5 9 6 1 0 Hãy vẽ cây trên. Bài 21: Nguyen Tri Tuan – Khoa CNTT ĐHKHTN Tp.HCM 3/3 Cho 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. EnQueue(q, y); DeQueue(q, x); EnQueue(q, 18 ); DeQueue(q, x); EnQueue(q, 22); Nguyen Tri Tuan – Khoa CNTT ĐHKHTN Tp.HCM 2/3 while (IsEmpty(q) == 0) { DeQueue(q, y); printf(“%d “, y);

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

Từ khóa liên quan

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

Tài liệu liên quan