THỰC HÀNH CẤU TRÚC DỮ LIỆU 2 (PTH02004) Bài 01(ctdlgt2bai01.cpp): Viết chương trình C++ tạo cây nhị phân biểu diễn biểu thức a*2 + (b-c)/d. Đưa biểu thức ra màn hình ở dạng tiền tố, trung tố và hậu tố. Bài 02(ctdlgt2bai02.cpp): Viết chương trình C++ tạo cây nhị phân (lưu trữ phân tán) cho dãy khóa có n phần tử là các số nguyên. Các khóa từ trái sang phải là các nút từ trên xuống dưới, từ trái sang phải. Đưa ra màn hình dãy khóa khi duyệt cây nhị phân theo thứ tự trước, giữa và sau. Bài 03***(ctdlgt2bai03.cpp): Viết chương trình C++ tạo cây nhị phân biểu diễn biểu thức Q nhập vào từ bàn phím. Đưa biểu thức Q ra màn hình ở dạng tiền tố, trung tố và hậu tố. Biểu thức Q nhập vào dưới dạng xâu ký tự không có dấu cách, mỗi số hạng chỉ là 1 ký tự, các toán tử đều là toán tử 2 ngôi, Q là biểu thức có dấu ngoặc đầy đủ. Bài 04(ctdlgt2bai04.cpp): Viết chương trình C++ tạo cây nhị phân (lưu trữ phân tán) cho dãy khóa là các số nguyên lưu trên văn bản 'daykhoa.txt'. Các khóa từ trái sang phải là các nút từ trên xuống dưới, từ trái sang phải. Đếm số nút có trên cây. Tìm chiều cao của cây nhị phân. Bài 5(ctdlgt2bai05.cpp): Cho đồ thị vô hướng, không trọng số có n đỉnh là các số nguyên từ 1 đến n. Cài đặt cấu trúc lưu trữ phân tán và phép toán duyệt đồ thị theo chiều sâu. Nhập vào đồ thị có n=6 đỉnh dưới đây. Đưa ra thứ tự các đỉnh được thăm khi duyệt đồ thị theo chiều sâu bắt đầu từ đỉnh 3. 1: 2,5,6 2: 1,3,5 3: 2,5 4: 6 5: 1,2,3,6 6: 1,4,5 Bài 6(ctdlgt2bai06.cpp): Cho đồ thị vô hướng, không trọng số có n đỉnh là các số nguyên từ 1 đến n. Cài đặt cấu trúc lưu trữ phân tán và phép toán duyệt đồ thị theo chiều rộng. Nhập vào đồ thị của bài 4. Đưa ra thứ tự các đỉnh được thăm khi duyệt đồ thị theo chiều rộng bắt đầu từ đỉnh 3. Bài 7(ctdlgt2bai07.cpp): Cho đồ thị vô hướng, không trọng số có n đỉnh là các số nguyên từ 1 đến n. Cài đặt cấu trúc lưu trữ kế tiếp (mảng 2 chiều) và phép toán duyệt đồ thị theo chiều sâu. Nhập vào đồ thị của bài 4. Đưa ra thứ tự các đỉnh được thăm khi duyệt đồ thị theo chiều sâu bắt đầu từ đỉnh 3. Bài 8(ctdlgt2bai08.cpp): Cho đồ thị vô hướng, không trọng số có n đỉnh là các số nguyên từ 1 đến n. Cài đặt cấu trúc lưu trữ kế tiếp (mảng 2 chiều) và phép toán duyệt đồ thị theo chiều rộng. Nhập vào đồ thị của bài 4. Đưa ra thứ tự các đỉnh được thăm khi duyệt đồ thị theo chiều rộng bắt đầu từ đỉnh 3. Bài 9(ctdlgt2bai09.cpp): Cho dãy khóa có n phần tử là các số nguyên lưu trữ trong mảng 1 chiều. Cài đặt giải thuật sắp xếp nhanh (Quick Sort) để sắp xếp dãy khóa tăng dần. Bài 10(ctdlgt2bai10.cpp): Cho dãy khóa có n phần tử là các số nguyên lưu trữ trong mảng 1 chiều. Cài đặt giải thuật sắp xếp vun đống (Heap Sort) để sắp xếp dãy khóa tăng dần. Bài 11(ctdlgt2bai11.cpp): Cho dãy khóa có n phần tử là các số nguyên lưu trữ trong mảng 1 chiều. Cài đặt giải thuật sắp xếp trộn (Merge Sort) để sắp xếp dãy khóa tăng dần. Bài 12(ctdlgt2bai12.cpp): Cho dãy khóa có n phần tử là các số nguyên lưu trữ trong mảng 1 chiều. Cài đặt giải thuật tìm kiếm nhị (Binary Search) ở dạng không đệ quy và đệ duy để tìm khóa có giá trị bằng x. Bài 13(ctdlgt2bai13.cpp): Cài đặt cây nhị phân tìm kiếm với các khóa là số nguyên. Tạo cây nhị phân tìm kiếm cho n khóa là các số nguyên. Tìm khóa có giá trị bằng x.