1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tổng quan về cây nhị phân

9 776 4
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tổng quan về cây nhị phân
Tác giả Nguyen Tri Tuan
Trường học Đại Học Khoa Học Tự Nhiên Tp.HCM
Chuyên ngành Data Structure & Algorithm
Thể loại Bài viết
Năm xuất bản Spring 2004
Thành phố Tp.HCM
Định dạng
Số trang 9
Dung lượng 118,44 KB

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

Nội dung

Tổng quan về cây nhị phân Các phương pháp duyệt cây void NLRconst BT_NODE *oCurr a Processing order “Xu ly nut sốc pCurr” NLRpCurr->pLeft; NLRpCurr->pRight; ac ac _.

Trang 1

Các khái niệm và thuật ngữ cơ bản

Các thuật ngữ liên quan

! Mức jh của cây đây đủ bậc đ có đ# nút

I VD mức h=2 của cây bậc 3 có bao nhiêu nút ?

! h mức đâu tiên của cây đây đủ bậc đ có sô nút

là:

! 3 mức đâu tiên của cây bậc 3 có bao nhiêu nút ?

Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT BH KHTN Tp.HCM 25

Tổng quan về cây nhị phân

!_ Định nghĩa

! Cach thức lưu trữ cây

!_ Các phương pháp duyệt cây

Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT DH KHTN Tp.HCM 26

13

Trang 2

Tổng quan về cây nhị phân

Định nghĩa

!_ Cây nhị phân là cây có bậc = 2

Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT DH KHTN Tp.HCM 27

Tổng quan về cây nhị phân

Định nghĩa

! Độ cao của cây nhị phân có N nút:

hT(max =N

! Brưmm = [logaN] + l

Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT DH KHTN Tp.HCM 28

14

Trang 3

Tổng quan về cây nhị phân

Định nghĩa

!_ Trắc nghiệm: Hãy vẽ tất cả các cây nhị

phân có 3 nút ?

Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT DH KHTN Tp.HCM 29

Tổng quan về cây nhị phân

Cách thức lưu trữ cây

!_ Có 2 cách tô chức cây nhị phân:

!_ Lưu trữ băng mảng

| Luu tri bằng con trỏ cấu trúc

Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT DH KHTN Tp.HCM 30

15

Trang 4

Tổng quan về cây nhị phân

Cách thức lưu trữ cây, sử dụng mảng

# |Nut |Con trai | Con phai

0 * 1 2

1 3 4

2 / 5 6

3 a -| -]

4 b -1 -1

5 C -1 -]

6 d -1 -1

Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN Tp.HCM 31

Tổng quan về cây nhị phân

Cách thức lưu trữ cây, sử dụng mảng

// Định nghĩa các cầu trúc dữ liệu

typedef struct tagBT_NODE {

int Data;

int Right; // chỉ số nút con phải

} BT_NODE; // binary tree node

BT_NODE tree[Nl; // cây nhị phân có N nút

Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT DH KHTN Tp.HCM 32

16

Trang 5

Tổng quan về cây nhị phân

Cách thức lưu trữ cây, sử dụng con trỏ

BIN_TREE

pRoot Go Count

Data

Nút gốc của Nút gốc của

Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT BH KHTN Tp.HCM 33

Tổng quan về cây nhị phân

Cách thức lưu trữ cây, sử dụng con trỏ

// Định nghĩa các cầu trúc dữ liệu

typedef struct tagBT_NODE {

int Data;

tagBT_NODE *pLeft; // con trỏ đến nút con trái

tagBT_NODE *pRight; // con tré dén nut con phai

} BT_NODE; // binary tree node

Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT DH KHTN Tp.HCM 34

L7

Trang 6

Tổng quan về cây nhị phân

Cách thức lưu trữ cây, sử dụng con trỏ

// Định nghĩa các câu trúc dữ liệu (tiếp theo)

typedef struct BIN_TREE {

int Count; // Số nút trong cây

BT NODE *pRoot; // con trỏ đến nút gốc

h // binary tree

Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT DH KHTN Tp.HCM 35

Tổng quan về cây nhị phân

Các phương pháp duyệt cây

I Có 3 cách duyệt cay:

! Duyệt gốc trước (Pre-Order) NLR

! Duyệt gốc giữa (In-Order) LNR

! Duyệt sỐc sau (Post-Order) LRN

€ 1» €2>D € 33

PS ar Pe

< oe NAN 2 is fs ` 5 ) a) ⁄*x

Lett Right Left Right Left Right

subtree subtree subtree subtree subtree subtree

(a) Preorder traversal (b)Inordertraversal (c) Postorder traversal

Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT DH KHTN Tp.HCM 36

18

Trang 7

Tổng quan về cây nhị phân

Các phương pháp duyệt cây

void NLR(const BT_NODE

*oCurr)

(a) Processing order

“Xu ly nut sốc pCurr”

NLR(pCurr->pLeft);

NLR(pCurr->pRight); ac ac

_

Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT DH KHTN Tp.HCM 37

Tổng quan về cây nhị phân

› CŨ- = JES 2

(a) Process tree A 1¬ (b) Process tree B

Cs tr JS

c5 D3 t “œ2 oD Py

(c) Process tree C " (d) Process tree D

(e) Process tree E (f) Process tree F

Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT DH KHTN Tp.HCM 38

19

Trang 8

Tổng quan về cây nhị phân

Các phương pháp duyệt cây

void LNR(const BT_NODE

*DCurr)

22 @

(b) “Walking” order

Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT DH KHTN Tp.HCM 39

Tổng quan về cây nhị phân

Các phương pháp duyệt cây

void LRN(const BT_NODE

*DCuTT) C2 s4

(a) Processing order

LRN(pCurr->pLeft); 4

8

LRN(pCurr->pRight);

(b) “Walking” order Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT BH KHTN Tp.HCM 40

20

Trang 9

Tổng quan về cây nhị phân

Các phương pháp duyệt cây

! Trắc nghiệm:

! Cho biết kết quả duyệt cây biểu thức ở trang #27

theo moi cach NLR, LNR, LRN 2

| Viét tht tuc/ham dém số nút trong cây ?

| Viét tht tuc/ham dém số nút lá trong cây ?

! Viết thủ tục/hàm tính chiều cao của cây ?

Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT BH KHTN Tp.HCM 41

Tổng quan về cây nhị phân

Các phương pháp duyệt cây

! Trắc nghiệm:

!_ Viết giải thuật duyệt

cây theo mức ?

(a) Processing order

(b) “Walking” order

Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT DH KHTN Tp.HCM 42

21

Ngày đăng: 26/10/2013, 00:20

TỪ KHÓA LIÊN QUAN

w