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

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

10 285 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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nguyễn Tấn Trần Minh Khang  Cho cây nhị phân các số nguyên.. Hãy viết hàm kiểm tra cây nhị phân T có phải là “cây nhị phân cân bằng” hay không...  Cây nhị phân cânbằng là cây nhị phân

Trang 1

BÀI 895

Trang 2

Cây nhị phân - 2

ThS Nguyễn Tấn

Trần Minh Khang

 Cho cây nhị phân các số nguyên Hãy viết hàm kiểm tra cây nhị phân T có phải là “cây nhị phân cân bằng” hay không.

Trang 3

Cây nhị phân cân

bằng là cây nhị phân

kiện sau: Mọi node trong cây đều có độ lệch nhỏ hơn bằng 1.

Trang 4

Cây nhị phân - 4

ThS Nguyễn Tấn

Trần Minh Khang

1. struct node

2. {

4. struct node *pLeft;

5. struct node *pRight;

6. };

7. typedef struct node NODE;

8. typedef NODE *TREE;

Trang 5

11.NODE* LonNhat(TREE t)

12.{

13. if(!t)

15. NODE*a=LonNhat(t->pLeft);

16. NODE*b=LonNhat(t->pRight);

17. NODE*lc = t;

18. if(a && a->info>lc->info)

20. if(b && b->info>lc->info)

Trang 6

Cây nhị phân - 6

ThS Nguyễn Tấn

Trần Minh Khang

11.NODE* NhoNhat(TREE t)

12.{

13. if(!t)

15. NODE*a=NhoNhat(t->pLeft);

16. NODE*b=NhoNhat(t->pRight);

17. NODE*lc = t;

18. if(a && a->info<lc->info)

20. if(b && b->info<lc->info)

22. return lc;

23.}

Trang 7

13. if(!t)

15. if(ktTimKiem(t->pLeft)==0)

17. if(ktTimKiem(t->pRight)==0)

19. NODE*a=LonNhat(t->pLeft);

20. if(a && a->info>t->info)

22. NODE*b=NhoNhat(t->pRight);

if(b && b->info<t->info)

Trang 8

Cây nhị phân - 8

ThS Nguyễn Tấn

Trần Minh Khang

11.int ChieuCao(TREE t)

12.{

13. if(!t)

15. int a=ChieuCao(t->pLeft);

16. int b=ChieuCao(t->pRight);

17. if(a>b)

19. return (b+1);

20.}

Trang 9

11.int DoLechMax(TREE t)

12.{

13. if(!t)

15. int a=DoLechMax(t->pLeft);

16. int b=DoLechMax(t->pRight);

17. int hl=ChieuCao(t->pLeft);

18. int hr=ChieuCao(t->pRight);

19. int lc = abs(hl-hr);

20. if(a>lc)

Trang 10

Cây nhị phân - 10

ThS Nguyễn Tấn

Trần Minh Khang

12.{

13. if(!t)

15. if(ktTimKiem(t)==0)

17. if(DoLechMax(t)>1)

19. return 1;

20.}

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

TỪ KHÓA LIÊN QUAN

w