9. 9
A
B DC
E F G H I
J K L M
root
sibling
Height
1
2
3
4
leaf
Leaf of T = {E,J,K,G,H,L,M}
T:
A เป็น โหนดพ่อแม่ ของ B,Cและ D
โครงสร้างและองค์ประกอบของ
ทรี
B, C, D เป็น โหนดพี่น้อง ที่มี โหนด A เป็นโหนด
พ่อแม่
10. 10
ต้นไม้ย่อย หรือ สับทรี (subtree)
A
B DC
E F G H I
J K L M
A
B DC
E F G H I
J K L M
T:
ต้นไม้ T ประกอบด้วย ต้นไม้ย่อย T1, T2, T3
• ต้นไม้ย่อย T1 มีโหนด B เป็น root
• ต้นไม้ย่อย T2 มีโหนด C เป็น root
• ต้นไม้ย่อย T3 มีโหนด D เป็น root
T1 T2 T3
12. 12
B
A
DC E
F G H H I
T1
4-ary tree
K A
B C
D E F G
binary
tree
T2
n-ary tree & binary tree
level-0
level-1
level-2
height
1
2
3
13. ไบนำรีทรี (ต้นไม้ทวิภำค)
A
B C
D E F G
Binary tree
T
N = 2h
-1
เมื่อ N แทนจำำนวนโหนด
ทั้งหมดของ
ไบนำรีทรี ที่มีควำมสูง h
เช่น ไบนำรีทรีที่มีควำมสูง
เท่ำกับ 3 จะมีจำำนวนโหนด
มำกที่สุดบนไบนำรีทรีเท่ำกับ
15. 15
Recursive Binary Tree Insert
procedure insert(T: binary tree, x: item)
v := root[T]
if v = null then begin
root[T] := x; return “Done” end
else if v = x return “Already present”
else if x < v then
return insert(leftSubtree[T], x)
else {must be x > v}
return insert(rightSubtree[T], x)
19. 19
A B
C D E
F G
G:
2
3
4
5
1
2
3
1
62
Minimum Spanning Tree (MST)
by Prim’s Algorithm
• MST เป็นการการเยี่ยมเดินไป
ให้ทั่วบนกราฟอย่างไม่ซำ้ากัน
โดยมีค่าผลรวมของ weight(ค่า
กำากับเส้นทาง) ที่น้อยที่สุด
• Prim’s algorithm ใช้หลักการ
– (1) พิจารณาโหนดในกราฟที่มี
ค่ากำากับเส้นทางที่น้อยที่สุด ณ
ขณะนั้นเข้าไปเป็นโหนดในทรี
โดยที่โหนดนั้นจะต้องไม่ทำาให้
เกิดวงจรบนทรี
20. 20
A B
C D E
F G
G:
2
3
4
5
1
2
3
1
62
Minimum Spanning Tree (MST)
by Prim’s Algorithm
สมมุติว่าเลือกโหนด
D เป็นโหนดเริ่มต้น
ของการทำา MST
D
5
1
3
2 1
D
F
21. 21
A B
C D E
F G
G:
2
3
4
5
1
2
3
1
62
Minimum Spanning Tree (MST)
by Prim’s Algorithm
สมมุติว่าเลือกโหนด
D เป็นโหนดเริ่มต้น
ของการทำา MST
D
5
3
2 1
D
F
4
1F 1 G
22. 22
A B
C D E
F G
G:
2
3
4
5
1
2
3
1
62
Minimum Spanning Tree (MST)
by Prim’s Algorithm
สมมุติว่าเลือกโหนด
D เป็นโหนดเริ่มต้น
ของการทำา MST
D
5
3
1
D
F
4
F 1 G
G
6
3 E
23. 23
A B
C D E
F G
G:
2
3
4
5
1
2
3
1
62
Minimum Spanning Tree (MST)
by Prim’s Algorithm
สมมุติว่าเลือกโหนด
D เป็นโหนดเริ่มต้น
ของการทำา MST
D
5
1
D
F
4
F 1 G
G
6
3 E
2
E
B
2
24. 24
A B
C D E
F G
G:
2
3
4
5
1
2
3
1
62
Minimum Spanning Tree (MST)
by Prim’s Algorithm
สมมุติว่าเลือกโหนด
D เป็นโหนดเริ่มต้น
ของการทำา MST
D
5
1
D
F
4
F 1 G
G
6
3 EE
B
2
B
3 3A
25. 25
A B
C D E
F G
G:
2
3
4
5
1
2
3
1
62
Minimum Spanning Tree (MST)
by Prim’s Algorithm
สมมุติว่าเลือกโหนด
D เป็นโหนดเริ่มต้น
ของการทำา MST
D
1
D
F
4
F 1 G
G
6
3 EE
B
2
B 3AA
2 2
C
26. 26
A B
C D E
F G
G:
2
3
4
5
1
2
3
1
62
Minimum Spanning Tree (MST)
by Prim’s Algorithm
D
F E
1 3
G
1
B
2
A
3
T:
ค่าผลรวมของค่ากำากับเส้นทางน้อยที่สุด = 1+1+3+2+3+2
1
D
F 1 G
3 E
B
2
3A
2
C
C
2
27. • Tree traversal หมายถึงการเดิมเยี่ยมโหนดทุกโหนดบนทรี ให้
ทั่ว อย่างไม่ซำ้ากัน
• สามารถทำาได้ 3 วิธี คือ : NLR(Pre-order), LNR(In-order)
และ LRN(Post-order)
• โดยพิจารณาโครงสร้างของทรี ดังนี้
27
Tree Traversal
(การเดินท่องไปให้ทั่วบนทรี)
R
N
L
N:แทนโหนดรากของทรี หรือ สับทรี
(subtree)L:แทนโหนดลูกทางซ้ายของทรี หรือ สับทรี
R:แทนโหนดลูกทางขวาของทรี หรือ สับทรี
28. 28
Tree Traversal: NLR (Pre-order)
1
2 3
4 5 6 7
T:
8 9
NLR: ให้เดิน root ของ
แต่ subtree ก่อนแล้วจึง
เดิน
left subtree แล้วตามด้วย
right subtreeผลลัพธ์การเดิน:
1,2,4,5,8,9,3,6,7
29. 29
Tree Traversal: LNR(In-order)
1
2 3
4 5 6 7
T:
8 9
LNR: ให้เดิน left
subtree ก่อนแล้วจึงเดิน
กลับไปที่
rootของ subtree แล้ว
ตามด้วย right subtree
ผลลัพธ์การเดิน:
4,2,8,5,9,1,6,3,7
30. 30
Tree Traversal: LRN(Post-order)
1
2 3
4 5 6 7
T:
8 9
LRN: ให้เดิน left
subtree ก่อนแล้วจึงเดิน
right subtree แล้วตาม
ด้วย root ของ subtree
ผลลัพธ์การเดิน:
4,8,9,5,2,6,7,3,1
32. (1) กำาหนดกราฟ Gให้ดังรูป จงใช้ prim’s algorithm เพื่อหาผล
รวมของค่ากำากับเส้นทางที่น้อยที่สุดของต้นไม้กระจายทั่ว
ถึง(spanning tree)
32
คำาถามท้ายบท
A B
C D E
F G
G:
2
3
5
4
1
2
3
3
69
2