1. Trang chủ
  2. » Công Nghệ Thông Tin

C cây nhị phân bài 895

10 284 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 456,17 KB

Nội dung

Khoa CNTT CTDL BÀI 895 ThS Nguyễn Tấn Trần Minh Khang Cây nhị phân - Khoa CNTT CTDL BÀI 895 nhị phân số nguyên Hãy viết hàm kiểm tra nhị phân T có phải “cây nhị phân cân bằng” hay không  Cho ThS Nguyễn Tấn Trần Minh Khang Cây nhị phân - Khoa CNTT CTDL BÀI 895  Cây nhị phân cân nhị phân tìm kiếm thoả điều kiện sau: Mọi node có độ lệch nhỏ ThS Nguyễn Tấn Trần Minh Khang Cây nhị phân - Click to see Figure 1-2 Khoa CNTT CTDL BÀI 895  Cấu trúc liệu struct node { int info; struct node *pLeft; struct node *pRight; }; typedef struct node NODE; typedef NODE *TREE; ThS Nguyễn Tấn Trần Minh Khang Cây nhị phân - Khoa CNTT CTDL BÀI 895  Định nghĩa hàm 11 NODE* LonNhat(TREE t) 12.{ if(!t) return NULL; NODE*a=LonNhat(t->pLeft); NODE*b=LonNhat(t->pRight); NODE*lc = t; if(a && a->info>lc->info) lc = a; if(b && b->info>lc->info) lc = b; return lc; 13 14 15 16 17 18 19 20 21 22 23.} ThS Nguyễn Tấn Trần Minh Khang Cây nhị phân - Khoa CNTT CTDL BÀI 895  Định nghĩa hàm 11 NODE* NhoNhat(TREE t) 12.{ if(!t) return NULL; NODE*a=NhoNhat(t->pLeft); NODE*b=NhoNhat(t->pRight); NODE*lc = t; if(a && a->infoinfo) lc = a; if(b && b->infoinfo) lc = b; return lc; 13 14 15 16 17 18 19 20 21 22 23.} ThS Nguyễn Tấn Trần Minh Khang Cây nhị phân - Khoa CNTT CTDL BÀI 895 11 int ktTimKiem(TREE t) 12.{ if(!t) return 1; if(ktTimKiem(t->pLeft)==0) return 0; if(ktTimKiem(t->pRight)==0) return 0; NODE*a=LonNhat(t->pLeft); if(a && a->info>t->info) return 0; NODE*b=NhoNhat(t->pRight); if(b && b->infoinfo) return 0; return 1; 13 14 15 16 17 18 19 20 21 22 23 24 25 26.} ThS Nguyễn Tấn Trần Minh Khang Cây nhị phân - Khoa CNTT CTDL BÀI 895  Định nghĩa hàm 11 int ChieuCao(TREE t) 12.{ if(!t) return 0; int a=ChieuCao(t->pLeft); int b=ChieuCao(t->pRight); if(a>b) return (a+1); return (b+1); 13 14 15 16 17 18 19 20.} ThS Nguyễn Tấn Trần Minh Khang Cây nhị phân - Khoa CNTT CTDL BÀI 895  Định nghĩa hàm 11 int DoLechMax(TREE t) 12.{ if(!t) return 0; int a=DoLechMax(t->pLeft); int b=DoLechMax(t->pRight); int hl=ChieuCao(t->pLeft); int hr=ChieuCao(t->pRight); int lc = abs(hl-hr); if(a>lc) lc = a; if(b>lc) lc = b; return lc; 13 14 15 16 17 18 19 20 21 22 23 24 25.} ThS Nguyễn Tấn Trần Minh Khang Cây nhị phân - Khoa CNTT CTDL BÀI 895 11 int ktCanBang(TREE t) 12.{ if(!t) return 1; if(ktTimKiem(t)==0) return 0; if(DoLechMax(t)>1) return 0; return 1; 13 14 15 16 17 18 19 20.} ThS Nguyễn Tấn Trần Minh Khang Cây nhị phân - 10

Ngày đăng: 24/06/2016, 22:40

TỪ KHÓA LIÊN QUAN

w