You are on page 1of 15

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 Click To Edit

1
NỘIMaster

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


DUNGTitle Style
Click
Định ToCây
Nghĩa 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à
nút gốc, các nút còn lại được chia thành
Cấu trúc dữ liệu 1 vá thuật giải

những tập rời nhau T1, T2, …,Tn theo quan hệ


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

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
MộtClick ToNiệm
Số Khái 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 .
Cấu trúc dữ liệu 1 vá thuật giải

• Mức của một nút:


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

– 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
Click
Ví Dụ 1 TổTo EditDạng
Chức Master
Cây Title Style
BB-Electronic Corp.

R&D Kinh doanh Taøi vuï Saûn xuaát


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

Noäi ñòa Quoác teá TV CD Amplier

Chaâu aâu Myõ Caùc


nöôùc

4
CâyClick To Edit
Nhị Phân Master Title Style

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

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

traùi phaûi
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1

5
MộtClick ToChất
Số Tính EditCủa
Master Title
Cây Nhị Style
Phân
• 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 
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

log2(N)
– N = số nút trong cây
• Số nút trong cây  2h-1.

6
CấuClick
Trúc To EditCủa
Dữ Liệu Master Title
Cây Nhị Style
Phân
typedef struct tagTNode
{
Data Key;
struct tagTNode *pLeft; Key
struct tagTNode *pRight;
}TNode;
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

typedef TNode *TREE;

7
Ví Dụ Cây Được Tổ Chức Trong Bộ Nhớ
Click
Trong
To Edit Master Title Style

1f
2f 6 3f

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

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

N 4 5f

5f 7f
N 5 N N 8 N

8
Click
Duyệt CâyTo
NhịEdit
PhânMaster Title Style
 Có 3 trình tự thăm gốc :
 Duyệt trước
 Duyệt giữa
 Duyệt sau
Cấu trúc dữ liệu 1 vá thuật giải

 Độ phức tạp O (log2(h))


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

Trong đó h là chiều cao cây

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

2 8

6 1
5 7
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

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
Click
Duyệt To
Trước Edit Master Title Style
void NLR(TREE Root)
{
if (Root != NULL)
{
<Xử lý Root>; //Xử lý tương ứng theo nhu cầu
Cấu trúc dữ liệu 1 vá thuật giải

NLR(Root->pLeft);
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1

NLR(Root->pRight);
}
}

11
Click
Duyệt To
Giữa Edit Master Title Style
void LNR(TREE Root)
{
if (Root != NULL)
{
LNR(Root->pLeft);
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

<Xử lý Root>; // Xử lý tương ứng theo nhu


cầu
LNR(Root->pRight);
}
}
12
Click
Duyệt SauTo Edit Master Title Style
void LRN(TREE Root)
{
if (Root != NULL)
{
LRN(Root->pLeft);
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

LRN(Root->pRight);
<Xử lý Root>; // Xử lý tương ứng theo nhu
cầu
}
}
13
BiểuClick To Tổng
Diễn Cây EditQuát
Master
Bằng Title Style
Cây Nhị Phân

E C
A
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

F H D

B C D
G I

J
E F G H I J

14
Click To Edit Master Title Style
void drawtree(tree p,unsigned x,unsigned y,unsigned k)
{
if(p!=NULL) {
gotoxy(x,y); printf("%d",p->key);
drawtree(p->pleft,x-(k/2),y+2,k-3);
Cấu trúc dữ liệu 1 vá thuật giải

drawtree(p->pright,x+(k/2),y+2,k-3);
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1

}
}

15

You might also like