CÂY TÌM KIẾM NHỊPHÂN

Một phần của tài liệu SLIDE TOÁN RỜI RẠC Chương 3 5 cây và cây khung của đồ thị TRƯỜNG ĐẠI HỌC MỎ ĐỊA CHẤT (Trang 66 - 73)

MỘT SỐ VÍ DỤ

3.5.5.2. CÂY TÌM KIẾM NHỊPHÂN

 Một cây tìm kiếm nhị phân là một cây nhị phân T mà trong đó:

 Mỗi đỉnh được gán cho một nhãn

 Các nhãn có thể so sánh được với nhau

 ∀ đỉnh v ∈T, các nhãn trong cây con bên trái của v đều nhỏ

hơn nhãn của v và các nhãn trong cây con bên phải của v đều lớn hơn nhãn của v

3.5.5.2. CÂY TÌM KIẾM NHỊ PHÂN

3.5.5.2. CÂY TÌM KIẾM NHỊ PHÂN

Thuật tốn tìm kiếm trên cây tìm kiếm nhị phân

 Giả sử ta có một cây tìm kiếm, x là một giá trị nào đó

 Xác định vị trí của biến x nếu x là nhãn của một đỉnh v

 Nếu thấy rằng x không là nhãn của một đỉnh nào cả thì tạo ra một đỉnh mới và gán nhãn x cho đỉnh đó

3.5.5.2. CÂY TÌM KIẾM NHỊ PHÂN

Thuật tốn tìm kiếm trên cây tìm kiếm nhịphân

Void TK (Cây NPTK T, phần tử x); {

v = gốc của T;

if(v == NULL) thêm đỉnh r vào cây và gán cho nó nhãn là x

while((v != NULL) && (label(v) != x) ) {

if(x == label(v)) cout<< “Tìmđược x”; if(x < label(v))

if(con bên trái v != NULL) v = con bên trái v;

else thêm đỉnh nhãn x là con bên trái v và đặt v := NULL;

if(x > label(v))

if(con bên phải v != NULL) v = con bên phải v;

else thêm đỉnh nhãn x là con bên phải v và đặt v:=NULL;

}

3.5.5.2. CÂY TÌM KIẾM NHỊ PHÂN

Biểu diễn cây nhị phân

 Thơng tin lưu tại nút: Info.

3.5.5.2. CÂY TÌM KIẾM NHỊ PHÂN

Cấu trúc dữ liệu của 1 nút

typedef struct tagTNode {

int Key; //trường dữ liệu là 1 số nguyên

struct tagTNode *pLeft;

struct tagTNode *pRight; } TNode;

Cấu trúc dữ liệu của cây

3.5.5.2. CÂY TÌM KIẾM NHỊ PHÂN

Tạo cây rỗng

 Cây rỗng -> địa chỉ nút gốc bằng NULL

void CreateTree(TREE &T) {

T=NULL; }

Một phần của tài liệu SLIDE TOÁN RỜI RẠC Chương 3 5 cây và cây khung của đồ thị TRƯỜNG ĐẠI HỌC MỎ ĐỊA CHẤT (Trang 66 - 73)