Tải bản đầy đủ (.ppt) (14 trang)

Cấu trúc dữ liệu C++ phần 6

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (255.91 KB, 14 trang )

Cấu trúc dữ liệu 1 vá thuật giải

CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1

NỘIMaster
DUNGTitle Style
Click To Edit

CÂY VÀ CÂY NHỊ PHÂN

1


Định
Nghĩa
Click
ToCây
Edit

Master Title Style

 Cây là một tập hợp T các phần tử (gọi là nút
của cây), trong đó có một nút đặc biệt gọi là

CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1

Cấu trúc dữ liệu 1 vá thuật giải

nút gốc, các nút còn lại được chia thành
những tập rời nhau T1, T2, …,Tn theo quan hệ
phân cấp, trong đó Ti cũng là 1 cây. Mỗi nút ở


cấp i sẽ quản lý một số nút ở cấp i+1. Quan hệ
này người ta gọi là quan hệ cha – con.
2


CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1

Cấu trúc dữ liệu 1 vá thuật giải

MộtClick
Số Khái
ToNiệm
Edit

Master Title Style

• Bậc của một nút: là số cây con của nút đó .
• Bậc của một cây: là bậc lớn nhất của các nút
trong cây
• Nút gốc: là nút khơng có nút cha.
• Nút lá: là nút có bậc bằng 0 .
• Mức của một nút:
– Mức (gốc (T) ) = 0.
– Gọi T1, T2, T3, ... , Tn là các cây con của T0 :
Mức (T1) = Mức (T2) = . . . = Mức (Tn) = Mức (T0)
+ 1.

• Độ dài đường đi từ gốc đến nút x: là số nhánh
cần đi qua kể từ gốc đến x.
3



Ví Dụ
1 TổTo
Chức
Cây
Click
EditDạng
Master

Title Style

BB-Electronic Corp.

CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1

Cấu trúc dữ liệu 1 vá thuật giải

R&D

Kinh doanh

Taøi vụ

Nội địa

Quốc tế

Châu âu


Mỹ

4

TV

Sản xuất

CD

Các nước

Amplier


CâyClick
Nhị Phân
To Edit

Master Title Style

CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1

Cấu trúc dữ liệu 1 vá thuật giải

• Mỗi nút có tối đa 2 cây con
Cây
con
trái


Cây
con
phải

5


CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1

Cấu trúc dữ liệu 1 vá thuật giải

MộtClick
Số Tính
Cây Nhị
Phân
ToChất
EditCủa
Master
Title
Style
• Số nút nằm ở mức i 
2i.
• Số nút lá  2h-1, với h
là chiều cao của cây.
• Chiều cao của cây h 
log2(N)
– N = số nút trong cây

• Số nút trong cây  2h1.
6



CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1

Cấu trúc dữ liệu 1 vá thuật giải

CấuClick
Trúc To
Dữ Liệu
Cây Nhị
Phân
EditCủa
Master
Title
Style
typedef struct tagTNode
{
Data
Key;
struct tagTNode *pLeft;
struct tagTNode *pRight;
}TNode;
typedef TNode *TREE;

7

Key


Ví Dụ Cây Được Tổ Chức Trong Bộ Nhớ

Click
To
Edit
Master
Title
Style
Trong

CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1

Cấu trúc dữ liệu 1 vá thuật giải

1f
2f

2f

N

4

6

3f
3f
7f

5f
5f


N

5

N

8

7f

N

8

9

N

N


CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1

Cấu trúc dữ liệu 1 vá thuật giải

Duyệt
CâyTo
NhịEdit
PhânMaster
Click


Title Style

 Có 3 trình tự thăm gốc :
 Duyệt trước
 Duyệt giữa
 Duyệt sau
 Độ phức tạp O (log2(h))
Trong đó h là chiều cao cây

9


Ví Dụ
Kết To
QuảEdit
Của Master
Phép Duyệt
Click
TitleCây
Style
9
8

CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1

Cấu trúc dữ liệu 1 vá thuật giải

2


1

6

5

7

10
3

12

4

• NLR: 9, 2, 6, 1, 10, 8, 5, 3, 7, 12, 4.
• LNR: 6, 2, 10, 1, 9, 3, 5, 8, 12, 7, 4.
• Kết quả của phép duyệt : LRN, NRL,LRN, LNR?
10


Duyệt
Trước
Click
To

Edit Master Title Style

CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1


Cấu trúc dữ liệu 1 vá thuật giải

void NLR(TREE Root)
{
if (Root != NULL)
{
<Xử lý Root>; //Xử lý tương ứng theo nhu cầu
NLR(Root->pLeft);
NLR(Root->pRight);
}
}

11


CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1

Cấu trúc dữ liệu 1 vá thuật giải

Duyệt
Giữa
Click
To

Edit Master Title Style

void LNR(TREE Root)
{
if (Root != NULL)
{

LNR(Root->pLeft);
<Xử lý Root>; // Xử lý tương ứng theo nhu
cầu
LNR(Root->pRight);
}
}
12


CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1

Cấu trúc dữ liệu 1 vá thuật giải

Duyệt
SauTo
Click

Edit Master Title Style

void LRN(TREE Root)
{
if (Root != NULL)
{
LRN(Root->pLeft);
LRN(Root->pRight);
<Xử lý Root>; // Xử lý tương ứng theo nhu
cầu
}
}
13



BiểuClick
Diễn Cây
Bằng Title
Cây Nhị
Phân
To Tổng
EditQuát
Master
Style
A

CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1

Cấu trúc dữ liệu 1 vá thuật giải

B
E

A

C
H

F
B

E


F

C

G

D

H

I

14

G
J

D
I
J



×