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

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

Đ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 1) Nguyễn Tri Tuấn – Khoa CNTT, đại học KHTN TP.HCM oOo Bài 1: Cho một cây nhò phân có gốc là Root, mỗi nút chứa một số nguyên. a. Hãy viết chương trình tính trung bình cộng của các nút trong cây. b. Hãy viết chương trình tính trung bình cộng của các số dương trong cây. c. Hãy viết chương trình tính trung bình cộng của các số âm trong cây. d. Hãy viết chương trình tính tỉ số: R = a / b Với a = tổng số các nút có giá trò > 0 b = tổng số các nút có giá trò < 0 Bài 2: a. Hãy chọn cấu trúc dữ liệu thích hợp để biểu diễn trong bộ nhớ chính một từ điển tần số gồm tối đa 1000 từ, mỗi từ có độ dài 10 ký tự, đi kèm với mỗi từ là số lần xuất hiện của từ đó (đã được thu thập từ một số văn bản nào đó). Yêu cầu : - thời gian truy cập đến một từ là tối thiểu - Bộ nhớ được dùng là tối thiểu b. Giả sử cấu trúc dữ liệu biểu diễn từ điển tần số (câu a.) đã được đònh nghóa và chứa đầy đủ dữ liệu. Viết chương trình C/Pascal liệt kê ra 100 từ có tần số lớn nhất. Bài 3: Hãy tính chi phí cho các thuật toán sau trong các trường hợp tốt nhất, xấu nhất, trung bình: a) for (i = 0; i < n; i++) if (a[i] == k) return 1; return 0; b) for (i = 0; i < n; i++) for (j = 0; j < n; j++) b[i][j] += c; c) for (i = 0; i < n; i++) for (j = i+1; j < n; j++) b[i][j] -= c; Bài 4: a. Hãy viết 1 đoạn chương trình yêu cầu ngừơi dùng nhập vào 1 số nguyên N và tiến hành cấp phát 1 mảng động chứa N số kiểu long. b. Cho một cấu trúc DEMO gồm có 3 field như sau: struct DEMO { int one; long two; char three[10]; } Hãy khai báo 1 biến con trỏ p với kiểu DEMO; cấp phát bộ nhớ cho con trỏ p; và gán vào các field của p lần lượt các giá trò sau {1, 500000, “Hello”} Nguyen Tri Tuan – Khoa CNTT ĐHKHTN Tp.HCM 2/3 Bài 5: Cho một danh sách liên kết đơn như sau: a. p1 = pHead->pNext; b. p3 = p1->pNext->pNext; c. p3->data = p1->data; d. pCurr = p1; while (pCurr != NULL) { pCurr->data *= 5; pCurr = pCurr->pNext; } Ứng với mỗi trường hợp [a] – [d], hãy vẽ lại danh sách, thể hiện rõ sự thay đổi. Bài 6: Cho một ngăn xếp s và 1 đoạn chương trình như sau: struct STACK s; int x, y = 5; Push(s, 8); Push(s, y); Push(s, 9); Pop(s, x); Push(s, 18); Pop(s, x); Push(s, 22); while (IsEmpty(s) == 0) { Pop(s, x); 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 7: ta có 100.000 từ tiếng Anh, mỗi từ dài không quá 10 ký tự. Giả sử máy tính của bạn có 1MB bộ nhớ còn trống. Hãy cho biết cấu trúc dữ liệu nào có thể dùng để lưu toàn bộ dữ liệu nói trên ? Lý giải sự lựa chọn của bạn (ngắn gọn). Khai báo cấu trúc này bằng C/PASCAL. Bài 8: Hãy vẽ cây cân bằng nếu ta tiến hành tạo cây với dữ liệu các nút thêm vào theo thứ tự sau (giả sử cây ban đầu là rỗng): M N O F C G H U A E Bài 9: Hãy áp dụng thuật toán hiệu chỉnh Heap để hiệu chỉnh dãy sau thành 1 Heap (ghi rõ từng bước): 5; 25; 15; 8; 7; 28; 1; 4; 10; 9 Nguyen Tri Tuan – Khoa CNTT ĐHKHTN Tp.HCM 3/3 Bài 10: Cho một cây như hình 1. Cho biết trước nút P. Hãy viết các lệnh cần thiết để chuyển cây sang dạng biểu diễn ở hình 2. Bài 11: Cho một cây nhò phân tìm kiếm như hình vẽ. Hãy cho biết thứ tự của các phần tử khi thêm vào cây ra sao để có được cấu trúc này ? (Giả sử lúc đầu cây rỗng) Nếu kết quả phép duyệt cây trên là: 3 7 9 5 12 20 18 15 10. Hãy cho biết người ta đã áp dụng phép duyệt nào ? Bài 12: Hãy viết một thủ tục/hàm tạo một danh sách liên kết đơn từ cây trên sao cho giá trò các phần tử trong danh sách có thứ tự giảm dần. Biết gốc của cây là ROOT. Hết phần 1 . Nguyen Tri Tuan – Khoa CNTT ĐHKHTN Tp.HCM 1/ 3 Bài tập Tổng hợp CTDL 1 (Phần 1) Nguyễn Tri Tuấn – Khoa CNTT, đại học KHTN TP.HCM oOo Bài 1: Cho một cây nhò phân có. hiệu chỉnh dãy sau thành 1 Heap (ghi rõ từng bước): 5; 25; 15 ; 8; 7; 28; 1; 4; 10 ; 9 Nguyen Tri Tuan – Khoa CNTT ĐHKHTN Tp.HCM 3/3 Bài 10 : Cho một cây như hình 1. Cho biết trước nút P three [10 ]; } Hãy khai báo 1 biến con trỏ p với kiểu DEMO; cấp phát bộ nhớ cho con trỏ p; và gán vào các field của p lần lượt các giá trò sau {1, 500000, “Hello”} Nguyen Tri Tuan – Khoa CNTT

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