Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 41 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Tiêu đề
Cây Nhị Phân Tìm Kiếm
Tác giả
Võ Quang Hoàng Khang
Định dạng
Số trang
41
Dung lượng
1,28 MB
Nội dung
Chương Cây nhị phân tìm kiếm Võ Quang Hồng Khang Email: vqhkhang@gmail.com Nội dung Khái niệm Đặc điểm Hình dạng Định nghĩa kiểu liệu Các lưu ý cài đặt Các thao tác Khái niệm 2 1 0 Bậc nút: số nút Nút gốc: nút khơng có nút cha Nút lá: nút có bậc Nút nhánh: nút có bậc khác gốc Khái niệm Mức Mức Mức Mức Độ dài đường từ gốc đến nút x: số nhánh cần qua kể từ gốc đến x Độ cao cây: Độ dài đường từ gốc đến nút mức thấp Đặc điểm nhị phân tìm kiếm 36 15 40 23 Là nhị phân Giá trị node lớn giá trị tất node bên trái nhỏ giá trị tất node bên phải Nút có giá trị nhỏ nằm trái Nút có giá trị lớn nằm phải Định nghĩa kiểu liệu Giá trị Key TNODE Nút Trỏ trái Trỏ phải pLeft pRight typedef struct TNODE { Key; struct TNODE *pLeft, *pRight; } *TREE; Ví dụ khai báo typedef struct TNODE { int Key; struct TNODE *pLeft, *pRight; } *TREE; Các lưu ý cài đặt Bước 1: Khai báo kiểu liệu biểu diễn Bước 2: Xây dựng hàm đưa liệu (nhập) vào Bước 3: Xây dựng thao tác duyệt, tìm kiếm, huỷ, … Cấu trúc chương trình Khai báo cấu trúc Khởi tạo rỗng Xây dựng Các thao tác Hủy Các thao tác Tạo Duyệt Cho biết thông tin Tìm kiếm Xố node 10 Hàm main gọi thao tác duyệt LNR void main() { TREE t; t=NULL; Nhap(t); coutLeft) 23 Xóa 36 (Cách 2) 16 40 Cho dãy số theo thứ tự nhập từ trái sang phải: 20, 15, 35, 30, 11, 13, 17, 36, 47, 16, 38, 28, 14 Vẽ nhị phân tìm kiếm cho dãy số Cho biết kết duyệt theo thứ tự trước, sau Cho biết độ cao cây, nút lá, nút có bậc Vẽ lại sau thêm nút: 25 91 Trình bày bước vẽ lại sau xoá nút: 11 35 41 ... đặt Bước 1: Khai báo kiểu liệu biểu diễn Bước 2: Xây dựng hàm đưa liệu (nhập) vào Bước 3: Xây dựng thao tác duyệt, tìm kiếm, huỷ, … Cấu trúc chương trình Khai báo cấu trúc Khởi tạo rỗng Xây dựng... LRN L7 R7 L3 R3 R7 R3 R7 L6 R7 R7 R7 R7 7 36 L36 R36 36 R 15 15 R36 36 10 23 15 R36 36 15 R36 36 40 36 36 12 13 14 KQ 40 23 11 15 23 15 40 36 19 Hàm duyệt LRN Tại node t xét, khác rỗng Duyệt... LRN(t->pRight); cout