Академический Документы
Профессиональный Документы
Культура Документы
z Nội dung
– Các khái niệm
– Biểu diễn cây tổng quát
– Cây nhị phân
z Duyệt cây nhị phân
z Biểu diễn cây nhị phân
– Các bài toán áp dụng trên cấu trúc cây
z Cây là một cấu trúc phi tuyến, thiết lập trên một tập hữu
hạn các “nút”
– Tồn tại một nút đặc biệt gọi là “gốc” (root)
– Giữa các nút tồn tại một quan hệ phân cấp hay gọi là
quan hệ cha con
– Một nút trừ nút gốc chỉ có một cha
– Một nút có thể có từ 0 đến n con
Ví dụ
Desktop
My Network My
My Computer
Places Documents
Caáp 3
Caáp 2 A
Caáp 4
B C D
E F G H I J K
Caáp 3
P L M N
B C D
E F G H I J K
P L M N
A Möùc 1
B C D Möùc 2
E F G H I J K Möùc 3
P L M N Möùc 4
B C D
P L M N
B C D
E F G H I J K
P L M N
z Rừng là một tập hợp hữu hạn các cây phân biệt , không
giao nhau
B C D
E F G H I J K
L M N
E F G H I K
A
– Cây nhị phân tương đương B
E C
F G D
2
5 9
1. B 2. C 3.D
6 7 8
3 4
1.1 E 1.2 F 2.1 G 2.2 H 2.3 I
1. B 2. C 3. D
1. B 2. C 3. D
2
1. B 2. C 3. D
2
1. B 2. C 3. D
2
1. B 2. C 3. D
3
1.1 E 1.2 F 2.1 G 2.2 H 2.3 I
2
1. B 2. C 3. D
3
1.1 E 1.2 F 2.1 G 2.2 H 2.3 I
2
1. B 2. C 3. D
3 4
1.1 E 1.2 F 2.1 G 2.2 H 2.3 I
3 4
1.1 E 1.2 F 2.1 G 2.2 H 2.3 I
2
1. B 2. C 3. D
3 4
1.1 E 1.2 F 2.1 G 2.2 H 2.3 I
2
1. B 2. C 3. D
3 4
1.1 E 1.2 F 2.1 G 2.2 H 2.3 I
2
1. B 5 2. C 3. D
3 4
1.1 E 1.2 F 2.1 G 2.2 H 2.3 I
8
3 7
todo.txt
homeworks/ programs/
1K
1 2 4 5 6
h1c.doc h1nc.doc DDR.java Stocks.java Robot.java
3K 2K 10K 25K 20K
1 3 5 7 8
h1c.doc h1nc.doc DDR.java Stocks.java Robot.java
3K 2K 10K 25K 20K
B C
D E F
- /
x * x z
3 y
Yes No Yes No
A H
A E H F
A D C E B H G F
A A A A
C C C C
F F F F
G G G G
D G E F
A
– Cây nhị phân gần đầy
B C
D E F G
H I J K
B C
D E F G
H L I J K
2 B 3 C
4 D 5 E 6 F 7 G
8 I 9 K
– Cây cho ở trên được lưu trữ trên vector lưu trữ V như sau
A B C D E F G I K
V[1] V[2] V[3] V[4] V[5] V[6] V[7] V[8] V[9]
1 A
A C F 8 2 C
V[1] V[2] V[3] V[4] V[5] V[6] V[7] V[8]
4 F
8 G
– Cần nắm một con trỏ T trỏ tới nút gốc của cây. Nếu cây
rỗng thì T = NULL
A A
B C B C
D E F
D E F
K
K
struct Tnode{
int info;
struct Tnode * lptr;
struct Tnode * rptr;
};
typedef struct Tnode TREENODE;
typedef TREENODE *TREENODEPTR;
ABDHEIJCFGK
z Duyệt theo thứ tự giữa
HDBIEJAFCKG
A
z Duyệt theo thứ tự sau
HDIJEBFKGCA B C
D E F G
H I J K
– Ví dụ 2: Cho cây nhị phân biểu diễn biểu thức số học sau,
hãy đưa ra dãy các nút được thăm khi thực hiện các phép
duyệt theo thứ tự trước, giữa và sau. Nhận xét về các dãy
thu được
- ^
x * / 2
4 y y z
- ^
x * / 2
4 y y z
– Tính giá trị của biểu thức số học biểu diễn bằng
một cây nhị phân
z Các nút lá biểu diễn các giá trị của các toán hạng
z Các nút nhánh biểu diễn các dấu phép toán
– Các dấu phép toán có thể sử dụng trong bài toán này là:
+, - , *, /, ^ và teta (biểu diễn dấu âm )
– Qui ước là với nút nhánh là teta thì toán hạng của nó là
con phải của nó
* ^
- teta 2 5
20 9 4