Cấu trúc dữ liệu & Giải thuật Bộ môn Công nghệ Tri thức BÀI TẬP THỰC HÀNH 05 CÂY NHỊ PHÂN TÌM KIẾM CÂY AVL Bài thực hành này sẽ được thực hiện trong 2 tuần 1 Bài tập 1 1 Cây nhị phân tìm kiếm (BST) Mỗ[.]
Cấu trúc liệu & Giải thuật Bộ môn Công nghệ Tri thức BÀI TẬP THỰC HÀNH 05 CÂY NHỊ PHÂN TÌM KIẾM - CÂY AVL Bài thực hành thực tuần Bài tập 1.1 Cây nhị phân tìm kiếm (BST) Mỗi Node nhị phân tìm kiếm định nghĩa sau: struct NODE{ int key; NODE* p_left; NODE* p_right; }; Sinh viên tiến hành cài đặt hàm sau: Khởi tạo NODE từ giá trị cho trước: • NODE* CreateNode(int data) Xuất theo thao tác duyệt trước: • void NLR(NODE* p_root) Xuất theo thao tác duyệt giữa: • void LNR(NODE* p_root) Xuất theo thao tác duyệt sau: • void LRN(NODE* p_root) Tìm trả NODE có giá trị cho trước nhị phân tìm kiếm: • NODE* Search(NODE* p_root, int x) Tính chiều cao nhị phân cho trước: • int Height(NODE* p_root) Thêm NODE có giá trị cho trước vào nhị phân tìm kiếm: • void Insert(NODE* &p_root, int x) Xố NODE có giá trị cho trước cây: • void Remove(NODE* &p_root, int x) Kiểm tra xem nhị phân cho trước có phải nhị phân tìm kiếm hay khơng: • bool IsBST(NODE* p_root) 10 Đếm số NODE nhị phân cho trước: • int CountNode(NODE* p_root) [Không bắt buộc: Sinh viên cài đặt cấu trúc liệu hàm tương ứng sử dụng Lập trình Hướng đối tượng] Trang / Cấu trúc liệu & Giải thuật 1.2 Bộ môn Công nghệ Tri thức Cây nhị phân tìm kiếm cân AVL Mỗi Node AVL định nghĩa sau: struct NODE{ int key; NODE* p_left; NODE* p_right; int height; }; Sinh viên tiến hành cài đặt hàm sau: Khởi tạo NODE: • NODE* CreateNode(int data) Thêm NODE có giá trị cho trước vào AVL (Thông báo giá trị cho trước có AVL): • void Insert(NODE* &p_root, int x) Xố NODE có giá trị cho trước khỏi AVL (Thơng báo giá trị khơng có AVL): • void Remove(NODE* &p_root, int x) Kiểm tra xem nhị phân cho trước có phải AVL hay khơng: • bool IsAVL(NODE* p_root) Xuất (gồm key height) theo thao tác duyệt trước: • void NLR(NODE* p_root) Xuất (gồm key height) theo thao tác duyệt giữa: • void LNR(NODE* p_root) Xuất (gồm key height) theo thao tác duyệt sau: • void LRN(NODE* p_root) Xuất (gồm key height) theo thao tác duyệt tầng: • void LevelOrder(NODE* p_root) [Không bắt buộc: Sinh viên cài đặt cấu trúc liệu hàm tương ứng sử dụng Lập trình Hướng đối tượng] Quy định nộp • Sinh viên nộp tồn mã nguồn liên quan thơng qua tập tin MSSV.zip MSSV.rar • Mỗi phần cần đặt thư mục riêng Tất nằm thư mục MSSV (Lưu ý: nộp file h cpp) • Các nộp sai quy định bị điểm • Các làm giống bị điểm môn học Trang / ...Cấu trúc liệu & Giải thuật 1.2 Bộ môn Cơng nghệ Tri thức Cây nhị phân tìm kiếm cân AVL Mỗi Node AVL định nghĩa sau: struct NODE{ int key; NODE* p_left; NODE* p_right;... trước khỏi AVL (Thông báo giá trị khơng có AVL): • void Remove(NODE* &p_root, int x) Kiểm tra xem nhị phân cho trước có phải AVL hay khơng: • bool IsAVL(NODE* p_root) Xuất (gồm key height) theo thao... sử dụng Lập trình Hướng đối tượng] Quy định nộp • Sinh viên nộp tồn mã nguồn liên quan thông qua tập tin MSSV.zip MSSV.rar • Mỗi phần cần đặt thư mục riêng Tất nằm thư mục MSSV (Lưu ý: nộp file