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

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