tailieunhanh - Bài giảng Cấu trúc dữ liệu và giải thuật: Cây nhị phân tìm kiếm - Nguyễn Mạnh Hiển (HKI năm 2020-2021)

Bài giảng "Cấu trúc dữ liệu và giải thuật: Cây nhị phân tìm kiếm" cung cấp cho bạn đọc những kiến thức về khái niệm cây nhị phân tìm kiếm, các thao tác trên cây nhị phân tìm kiếm, một vài ví dụ sử dụng cây nhị phân tìm kiếm. | Cây nhị phân tìm kiếm Binary Search Trees Nguyễn Mạnh Hiển hiennm@ Định nghĩa Giả thiết các giá trị trên cây khác nhau. Cây nhị phân tìm kiếm là cây nhị phân trong đó với mọi nút X Tất cả các giá trị trên cây con trái của X nhỏ hơn X. Tất cả các giá trị trên cây con phải của X lớn hơn X. Đây có phải là cây nhị phân tìm kiếm Các thao tác chính Tìm phần tử nhỏ nhất Tìm phần tử lớn nhất Tìm phần tử x Chèn phần tử x Xóa phần tử x Tất cả các thao tác trên có thời gian chạy trung bình là O log N sẽ chứng minh sau. Cài đặt template T là kiểu phần tử class BinarySearchTree public Hàm tạo hàm hủy Kiểm tra rỗng Xóa rỗng cây Tìm min tìm max tìm phần tử x Chèn xóa phần tử x private struct BinaryNode . Kiểu của các nút BinaryNode root Con trỏ tới nút gốc Các hàm trợ giúp Kiểu của các nút struct BinaryNode T elem Phần tử BinaryNode left Con trỏ tới con trái BinaryNode right Con trỏ tới con phải Hàm tạo của cấu trúc BinaryNode. BinaryNode T x BinaryNode l BinaryNode r elem x Khởi tạo trường phần tử left l Khởi tạo trường con trỏ trái right r Khởi tạo trường con trỏ phải Hàm tạo hàm hủy xóa rỗng BinarySearchTree root NULL Ban đầu cây rỗng BinarySearchTree makeEmpty Xóa hết các nút trên cây void makeEmpty Hàm xóa rỗng cây makeEmpty root Gọi hàm private trợ giúp slide sau bool isEmpty Hàm kiểm tra rỗng return root NULL Xóa rỗng cây có gốc t Hàm private trợ giúp việc xóa rỗng cây viết theo kiểu đệ quy. void makeEmpty BinaryNode amp t Có dấu amp trước t vì sẽ gán giá trị mới cho t trong thân hàm. if t NULL return Thoát ra nếu cây rỗng makeEmpty t- gt left Xóa rỗng cây con trái makeEmpty t- gt right Xóa rỗng cây con phải delete t Xóa nút gốc t NULL Cây đã rỗng tức là không tồn tại gốc Tìm phần tử nhỏ nhất Hàm public. T findMin BinaryNode v findMin root Gọi hàm private return v- gt elem Lấy ra phần tử nhỏ nhất và trả về Hàm private trợ giúp dùng đệ quy . Phần tử nhỏ nhất nằm ở nút ngoài cùng bên trái của cây. BinaryNode findMin BinaryNode t if t NULL Cây rỗng return NULL if .

TỪ KHÓA LIÊN QUAN