SlideShare une entreprise Scribd logo
1  sur  36
1
ทรีทรี--ต้นไม้ต้นไม้((TreesTrees))
2
วัตถุประสงค์
•เพื่อศึกษาหลักการเบื้องต้นเกี่ยวกับ
ทรี(tree)หรือต้นไม้ในทางคอมพิวเตอร์
•ประยุกต์ความสัมพันธ์ของข้อมูลในรูปทรี
สำาหรับกระบวนการทางคอมพิวเตอร์
3
Outline
• Terminology:
• Tree application:
– Binary search tree(BST)
• Tree spanning:
– Minimum spanning tree by Prim’s algorithm
• Traversal:
– Pre-order, In-order and Post-order
4
คำาศัพท์เกี่ยวข้อง
(Terminologies)
• โครงสร้างของทรี (structural)
– ราก(root), ใบ(leaf) , โหนดภายใน(internal node),
กิ่ง(branch), ต้นไม้ย่อย(subtree),
• ความสัมพันธ์(Relationship)
– พ่อไม้:parent( predecessor ), ลูก:child( successor ), พี่
น้อง:sibling
• ชนิดของทรี(Types)
– n-ary tree, binary tree
• คุณสมบัติ(Properties)
– ระดับ(level) และความสูง(height)ของทรี
5
ทรี(Trees)
• ทรี กล่าวได้ว่าเป็น กราฟเชื่อมโยงแบบไม่ระบุ
ทิศทาง (connected undirected graph) ซึ่งจะต้องไม่มี
วงจรเกิดขึ้น (circuit)
• ทรีหลายทรีอยู่ที่เดียวกันเรียกว่า ป่า(forest)
• โครงสร้างของ ทรีประกอบไปด้วย เซตของ
โหนด(เทียบแล้วคือจุด บนกราฟ) กับเซตของเส้น
เชื่อมโยงระหว่างโหนด(เทียบแล้วคือ เส้น บน
กราฟ)
• มีการกำาหนดโหนดพิเศษที่เกิดเป็นโหนดแรกบนทรี
ถูก เรียกว่าโหนดราก (root node)
6
A
B DC
E F G H I
J K L M
โครงสร้างและองค์ประกอบของ
ทรี
Tree
A
B DC
E F G H I
J K L M
Graph
ทรี ต่างกับกราฟ
อย่างไร ?
7
ตัวอย่างทรี และ ป่า
(Tree and Forest Examples)
• A Tree: • A Forest:
Leaves in green, internal nodes in brown.
8
โครงสร้างและองค์ประกอบของ
ทรี
T1
T2
T3
Forest F ={T1, T2, T3}
F
ฐานข้อมูล
นักศึกษา
CS
ฐานข้อมูล
นักศึกษา
CPE
ฐานข้อมูล
นักศึกษา
ICT
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
ต้นไม้ย่อย หรือ สับทรี (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
11
n-ary trees
• แต่ละโหนดบนทรี(ยกเว้นโหนดใบ) จะมีจำำนวน
โหนดลูกไม่เกิน n โหนด
• ถ้ำ n ของ n-ary tree มีค่ำ n= 2 จะเรียน 2-ary
tree ซึ่งหมำยถึง ไบนำรีทรี (binary tree)
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
ไบนำรีทรี (ต้นไม้ทวิภำค)
A
B C
D E F G
Binary tree
T
N = 2h
-1
เมื่อ N แทนจำำนวนโหนด
ทั้งหมดของ
ไบนำรีทรี ที่มีควำมสูง h
เช่น ไบนำรีทรีที่มีควำมสูง
เท่ำกับ 3 จะมีจำำนวนโหนด
มำกที่สุดบนไบนำรีทรีเท่ำกับ
14
กำรประยุกต์ใช้ทรี กับกำร
ค้นหำ
(Binary Search Tree :BST)
T จะเป็น BST ถ้ำ
(1) T ต้องเป็น ไบนำรีทรี
(2) และทุกโหนดในต้นไม้ย่อยทำงซ้ำย
มีค่ำน้อยกว่ำทุกโหนดที่เป็นโหนดรำก
ของต้นไม้ย่อยและทุกโหนดใน
ต้นไม้ย่อยทำงขวำ
7
3 12
1 5 9 15
0 2 8 11
T:
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)
• ตัวอย่ำง เมื่อกำำหนดข้องมูล(ที่นำำไปสร้ำง
BST)โดยมีลำำดับกำรเข้ำข้อมูลของต้นไม้ BST
ดังนี้ {7,3,12,1,5, 9,15,0,2,8,11 }
กำรสร้ำง BST
7
3 12
1 5
7 7
3
7
3 12
7
3 12
1
นักศึกษำสร้ำงต่อให้เสร็จ ?
17
กำรสร้ำง BST
7
3 12
1 5 9 15
7
3 12
1 5
{7,3,12,1,5,9,15,0,2,8,11 }
7
3 12
1 5 9
18
กำรสร้ำง BST
{7,3,12,1,5,9,15,0,2,8,11 }
7
3 12
1 5 9 15
0
7
3 12
1 5 9 15
0 2
7
3 12
1 5 9 15
20 8
7
3 12
1 5 9 15
20 8 11
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
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
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
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
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
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
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
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
• Tree traversal หมายถึงการเดิมเยี่ยมโหนดทุกโหนดบนทรี ให้
ทั่ว อย่างไม่ซำ้ากัน
• สามารถทำาได้ 3 วิธี คือ : NLR(Pre-order), LNR(In-order)
และ LRN(Post-order)
• โดยพิจารณาโครงสร้างของทรี ดังนี้
27
Tree Traversal
(การเดินท่องไปให้ทั่วบนทรี)
R
N
L
N:แทนโหนดรากของทรี หรือ สับทรี
(subtree)L:แทนโหนดลูกทางซ้ายของทรี หรือ สับทรี
R:แทนโหนดลูกทางขวาของทรี หรือ สับทรี
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
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
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
31
1.กำาหนดทรีทั่วไปมาหนึ่งต้น ให้แสดงการทำา
tree traversalทั้งสามแบบ (NLR, LNR และ
LRN)
2.กำาหนดชุดข้อมูลให้จำานวนหนึ่ง ให้แสดงการนำา
ชุดข้อมูลนี้ไปสร้าง BST
(20 นาที)
Quiz -VI
(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
(2) เมื่อกำาหนดทรี Tให้ดังรูป จงหาผลลัพธ์การเดินเยี่ยมให้ทั่วบน
ทรี(tree traversal) ในแบบ NLR, LNR และ LRN
33
คำาถามท้ายบท
1
2 3
4 5 6 7
T:
8 9 10 11
(3) เมื่อกำาหนดทรี Tให้ดังรูป จงหาผลลัพธ์ของคำาถามต่อไปนี้
34
คำาถามท้ายบท
1
2 3
4 5 6 7
T:
8 9 10 11
3.1 ถ้าให้ T เป็นไบนารีทรี ทรีต้นนี้
มีความสูงเท่าใด
3.2 ทรี T จะมีจำานวนโหนดมาก
ที่สุดเท่าใด ถ้าความสูงของทรี T มี
ค่าเป็น 7
(4) จงใช้ข้อมูลที่กำาหนดให้ต่อไปนี้ นำาไปสร้าง BST: T2
ข้อมูล = {25,30,73,12,9,84,49,11,98,77,33,130}
35
คำาถามท้ายบท
(5) จาก BST ในข้อ 4 ถ้าต้องการทราบว่ามีข้อมูล 53 อยู่ใน T2
หรือไม่ จะต้องทำาการเปรียบเทียบทั้งหมดกี่ครั้งถึงจะทราบคำา
ตอบ
(6) จาก BST ในข้อ 4 จะสามารถสร้างทรีที่มีความสูงน้อยที่สุด
ด้วยค่าความสูงเท่าใด
Final Exam 1/53
• 1.(10) ตรวจสอบสมบัติความสัมพันธ์
• 2.(10) การแทนกราฟ
• 3.(10) isomorphic
• 4.(10) graph connectivity
• 5.(15) Dijkstra’s algorithm
• 6.(10) Prim’s algorithm
• 7.(5) วงจรตรรกเชิงผสม
• 8.(10) วงจรตรรกเชิงผสม
36

Contenu connexe

Tendances

แบบฝึกทักษะที่ 6
แบบฝึกทักษะที่ 6แบบฝึกทักษะที่ 6
แบบฝึกทักษะที่ 6Roman Paduka
 
การแจกแจงความน่าจะเป็น
การแจกแจงความน่าจะเป็นการแจกแจงความน่าจะเป็น
การแจกแจงความน่าจะเป็นSariffuddeen Samoh
 
สรุปสูตร ม.3
สรุปสูตร ม.3สรุปสูตร ม.3
สรุปสูตร ม.3krutew Sudarat
 
การวัดการกระจายของข้อมูล
การวัดการกระจายของข้อมูลการวัดการกระจายของข้อมูล
การวัดการกระจายของข้อมูลKruGift Girlz
 
บทที่3.pdf
บทที่3.pdfบทที่3.pdf
บทที่3.pdfsewahec743
 
แบบฝึกหัดแยกตัวประกอบ
แบบฝึกหัดแยกตัวประกอบแบบฝึกหัดแยกตัวประกอบ
แบบฝึกหัดแยกตัวประกอบMike Polsit
 
ชุดกิจกรรมการเรียนรู้ เรื่องอัตราการเกิดปฏิกิริยาเคมี
ชุดกิจกรรมการเรียนรู้ เรื่องอัตราการเกิดปฏิกิริยาเคมีชุดกิจกรรมการเรียนรู้ เรื่องอัตราการเกิดปฏิกิริยาเคมี
ชุดกิจกรรมการเรียนรู้ เรื่องอัตราการเกิดปฏิกิริยาเคมีกิตติธัช สืบสุนทร
 
เมทริกซ์ (Matrix)
เมทริกซ์ (Matrix)เมทริกซ์ (Matrix)
เมทริกซ์ (Matrix)K'Keng Hale's
 
สื่อเรื่องระบบจำนวนจริง ครูขวัญแก้ว มีเหมือน ค30207 คณิตศาสตร์เพิ่มเติม7 ชั้...
สื่อเรื่องระบบจำนวนจริง ครูขวัญแก้ว  มีเหมือน ค30207 คณิตศาสตร์เพิ่มเติม7 ชั้...สื่อเรื่องระบบจำนวนจริง ครูขวัญแก้ว  มีเหมือน ค30207 คณิตศาสตร์เพิ่มเติม7 ชั้...
สื่อเรื่องระบบจำนวนจริง ครูขวัญแก้ว มีเหมือน ค30207 คณิตศาสตร์เพิ่มเติม7 ชั้...กุ้ง ณัฐรดา
 
เลขยกกำลัง
เลขยกกำลังเลขยกกำลัง
เลขยกกำลังkuraek1530
 
เรื่อง ระบบหายใจ
เรื่อง  ระบบหายใจเรื่อง  ระบบหายใจ
เรื่อง ระบบหายใจNichapa Banchakiat
 
การหาคำตอบของอสมการตั้งแต่สองอสมการขึ้นไป2
การหาคำตอบของอสมการตั้งแต่สองอสมการขึ้นไป2การหาคำตอบของอสมการตั้งแต่สองอสมการขึ้นไป2
การหาคำตอบของอสมการตั้งแต่สองอสมการขึ้นไป2ทับทิม เจริญตา
 
กฎการนับ
กฎการนับกฎการนับ
กฎการนับJutaros Tosakul
 
Lecture 6 Normal Distribution.pptx
Lecture 6 Normal Distribution.pptxLecture 6 Normal Distribution.pptx
Lecture 6 Normal Distribution.pptxABCraftsman
 
ค่ามาตรฐาน ม.6
ค่ามาตรฐาน ม.6ค่ามาตรฐาน ม.6
ค่ามาตรฐาน ม.6KruGift Girlz
 

Tendances (20)

แบบฝึกทักษะที่ 6
แบบฝึกทักษะที่ 6แบบฝึกทักษะที่ 6
แบบฝึกทักษะที่ 6
 
การแจกแจงความน่าจะเป็น
การแจกแจงความน่าจะเป็นการแจกแจงความน่าจะเป็น
การแจกแจงความน่าจะเป็น
 
สรุปสูตร ม.3
สรุปสูตร ม.3สรุปสูตร ม.3
สรุปสูตร ม.3
 
การวัดการกระจายของข้อมูล
การวัดการกระจายของข้อมูลการวัดการกระจายของข้อมูล
การวัดการกระจายของข้อมูล
 
Unit 1 matrix
Unit 1 matrixUnit 1 matrix
Unit 1 matrix
 
บทที่3.pdf
บทที่3.pdfบทที่3.pdf
บทที่3.pdf
 
แบบฝึกหัดแยกตัวประกอบ
แบบฝึกหัดแยกตัวประกอบแบบฝึกหัดแยกตัวประกอบ
แบบฝึกหัดแยกตัวประกอบ
 
ชุดกิจกรรมการเรียนรู้ เรื่องอัตราการเกิดปฏิกิริยาเคมี
ชุดกิจกรรมการเรียนรู้ เรื่องอัตราการเกิดปฏิกิริยาเคมีชุดกิจกรรมการเรียนรู้ เรื่องอัตราการเกิดปฏิกิริยาเคมี
ชุดกิจกรรมการเรียนรู้ เรื่องอัตราการเกิดปฏิกิริยาเคมี
 
เมทริกซ์ (Matrix)
เมทริกซ์ (Matrix)เมทริกซ์ (Matrix)
เมทริกซ์ (Matrix)
 
สื่อเรื่องระบบจำนวนจริง ครูขวัญแก้ว มีเหมือน ค30207 คณิตศาสตร์เพิ่มเติม7 ชั้...
สื่อเรื่องระบบจำนวนจริง ครูขวัญแก้ว  มีเหมือน ค30207 คณิตศาสตร์เพิ่มเติม7 ชั้...สื่อเรื่องระบบจำนวนจริง ครูขวัญแก้ว  มีเหมือน ค30207 คณิตศาสตร์เพิ่มเติม7 ชั้...
สื่อเรื่องระบบจำนวนจริง ครูขวัญแก้ว มีเหมือน ค30207 คณิตศาสตร์เพิ่มเติม7 ชั้...
 
Set
SetSet
Set
 
พื้นที่ผิวทรงกลม5
พื้นที่ผิวทรงกลม5พื้นที่ผิวทรงกลม5
พื้นที่ผิวทรงกลม5
 
เลขยกกำลัง
เลขยกกำลังเลขยกกำลัง
เลขยกกำลัง
 
เรื่อง ระบบหายใจ
เรื่อง  ระบบหายใจเรื่อง  ระบบหายใจ
เรื่อง ระบบหายใจ
 
การหาคำตอบของอสมการตั้งแต่สองอสมการขึ้นไป2
การหาคำตอบของอสมการตั้งแต่สองอสมการขึ้นไป2การหาคำตอบของอสมการตั้งแต่สองอสมการขึ้นไป2
การหาคำตอบของอสมการตั้งแต่สองอสมการขึ้นไป2
 
Weather Radar_ppt_may60
Weather Radar_ppt_may60Weather Radar_ppt_may60
Weather Radar_ppt_may60
 
แบบฝึกทักษะ เรื่อง เอกนาม โดยครูวาสนา พูลศรี
แบบฝึกทักษะ เรื่อง เอกนาม โดยครูวาสนา พูลศรีแบบฝึกทักษะ เรื่อง เอกนาม โดยครูวาสนา พูลศรี
แบบฝึกทักษะ เรื่อง เอกนาม โดยครูวาสนา พูลศรี
 
กฎการนับ
กฎการนับกฎการนับ
กฎการนับ
 
Lecture 6 Normal Distribution.pptx
Lecture 6 Normal Distribution.pptxLecture 6 Normal Distribution.pptx
Lecture 6 Normal Distribution.pptx
 
ค่ามาตรฐาน ม.6
ค่ามาตรฐาน ม.6ค่ามาตรฐาน ม.6
ค่ามาตรฐาน ม.6
 

En vedette

En vedette (18)

Tree
TreeTree
Tree
 
ประมวลการสอน
ประมวลการสอนประมวลการสอน
ประมวลการสอน
 
SET
SETSET
SET
 
Relations
RelationsRelations
Relations
 
ระบบเลขฐาน
ระบบเลขฐานระบบเลขฐาน
ระบบเลขฐาน
 
Logic
LogicLogic
Logic
 
Graphs
GraphsGraphs
Graphs
 
โครงสร้างข้อมูลแบบต้นไม้
โครงสร้างข้อมูลแบบต้นไม้โครงสร้างข้อมูลแบบต้นไม้
โครงสร้างข้อมูลแบบต้นไม้
 
Function
FunctionFunction
Function
 
ความรู้เบื้องต้นเกี่ยวกับระเบียบวิธีทางสถิติ
ความรู้เบื้องต้นเกี่ยวกับระเบียบวิธีทางสถิติความรู้เบื้องต้นเกี่ยวกับระเบียบวิธีทางสถิติ
ความรู้เบื้องต้นเกี่ยวกับระเบียบวิธีทางสถิติ
 
ความน่าจะเป็น
ความน่าจะเป็นความน่าจะเป็น
ความน่าจะเป็น
 
Tree
TreeTree
Tree
 
4.อินทิกรัลไม่ตรงแบบ
4.อินทิกรัลไม่ตรงแบบ4.อินทิกรัลไม่ตรงแบบ
4.อินทิกรัลไม่ตรงแบบ
 
9 spss
9 spss9 spss
9 spss
 
โครงสร้างข้อมูลแบบลิงค์ลิสต์ (linklist)
โครงสร้างข้อมูลแบบลิงค์ลิสต์ (linklist)โครงสร้างข้อมูลแบบลิงค์ลิสต์ (linklist)
โครงสร้างข้อมูลแบบลิงค์ลิสต์ (linklist)
 
cluster analysis
cluster analysis cluster analysis
cluster analysis
 
Tree.two
Tree.twoTree.two
Tree.two
 
Tree
TreeTree
Tree
 

Trees

  • 3. 3 Outline • Terminology: • Tree application: – Binary search tree(BST) • Tree spanning: – Minimum spanning tree by Prim’s algorithm • Traversal: – Pre-order, In-order and Post-order
  • 4. 4 คำาศัพท์เกี่ยวข้อง (Terminologies) • โครงสร้างของทรี (structural) – ราก(root), ใบ(leaf) , โหนดภายใน(internal node), กิ่ง(branch), ต้นไม้ย่อย(subtree), • ความสัมพันธ์(Relationship) – พ่อไม้:parent( predecessor ), ลูก:child( successor ), พี่ น้อง:sibling • ชนิดของทรี(Types) – n-ary tree, binary tree • คุณสมบัติ(Properties) – ระดับ(level) และความสูง(height)ของทรี
  • 5. 5 ทรี(Trees) • ทรี กล่าวได้ว่าเป็น กราฟเชื่อมโยงแบบไม่ระบุ ทิศทาง (connected undirected graph) ซึ่งจะต้องไม่มี วงจรเกิดขึ้น (circuit) • ทรีหลายทรีอยู่ที่เดียวกันเรียกว่า ป่า(forest) • โครงสร้างของ ทรีประกอบไปด้วย เซตของ โหนด(เทียบแล้วคือจุด บนกราฟ) กับเซตของเส้น เชื่อมโยงระหว่างโหนด(เทียบแล้วคือ เส้น บน กราฟ) • มีการกำาหนดโหนดพิเศษที่เกิดเป็นโหนดแรกบนทรี ถูก เรียกว่าโหนดราก (root node)
  • 6. 6 A B DC E F G H I J K L M โครงสร้างและองค์ประกอบของ ทรี Tree A B DC E F G H I J K L M Graph ทรี ต่างกับกราฟ อย่างไร ?
  • 7. 7 ตัวอย่างทรี และ ป่า (Tree and Forest Examples) • A Tree: • A Forest: Leaves in green, internal nodes in brown.
  • 8. 8 โครงสร้างและองค์ประกอบของ ทรี T1 T2 T3 Forest F ={T1, T2, T3} F ฐานข้อมูล นักศึกษา CS ฐานข้อมูล นักศึกษา CPE ฐานข้อมูล นักศึกษา ICT
  • 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
  • 11. 11 n-ary trees • แต่ละโหนดบนทรี(ยกเว้นโหนดใบ) จะมีจำำนวน โหนดลูกไม่เกิน n โหนด • ถ้ำ n ของ n-ary tree มีค่ำ n= 2 จะเรียน 2-ary tree ซึ่งหมำยถึง ไบนำรีทรี (binary tree)
  • 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 จะมีจำำนวนโหนด มำกที่สุดบนไบนำรีทรีเท่ำกับ
  • 14. 14 กำรประยุกต์ใช้ทรี กับกำร ค้นหำ (Binary Search Tree :BST) T จะเป็น BST ถ้ำ (1) T ต้องเป็น ไบนำรีทรี (2) และทุกโหนดในต้นไม้ย่อยทำงซ้ำย มีค่ำน้อยกว่ำทุกโหนดที่เป็นโหนดรำก ของต้นไม้ย่อยและทุกโหนดใน ต้นไม้ย่อยทำงขวำ 7 3 12 1 5 9 15 0 2 8 11 T:
  • 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)
  • 16. • ตัวอย่ำง เมื่อกำำหนดข้องมูล(ที่นำำไปสร้ำง BST)โดยมีลำำดับกำรเข้ำข้อมูลของต้นไม้ BST ดังนี้ {7,3,12,1,5, 9,15,0,2,8,11 } กำรสร้ำง BST 7 3 12 1 5 7 7 3 7 3 12 7 3 12 1 นักศึกษำสร้ำงต่อให้เสร็จ ?
  • 17. 17 กำรสร้ำง BST 7 3 12 1 5 9 15 7 3 12 1 5 {7,3,12,1,5,9,15,0,2,8,11 } 7 3 12 1 5 9
  • 18. 18 กำรสร้ำง BST {7,3,12,1,5,9,15,0,2,8,11 } 7 3 12 1 5 9 15 0 7 3 12 1 5 9 15 0 2 7 3 12 1 5 9 15 20 8 7 3 12 1 5 9 15 20 8 11
  • 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
  • 31. 31 1.กำาหนดทรีทั่วไปมาหนึ่งต้น ให้แสดงการทำา tree traversalทั้งสามแบบ (NLR, LNR และ LRN) 2.กำาหนดชุดข้อมูลให้จำานวนหนึ่ง ให้แสดงการนำา ชุดข้อมูลนี้ไปสร้าง BST (20 นาที) Quiz -VI
  • 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
  • 33. (2) เมื่อกำาหนดทรี Tให้ดังรูป จงหาผลลัพธ์การเดินเยี่ยมให้ทั่วบน ทรี(tree traversal) ในแบบ NLR, LNR และ LRN 33 คำาถามท้ายบท 1 2 3 4 5 6 7 T: 8 9 10 11
  • 34. (3) เมื่อกำาหนดทรี Tให้ดังรูป จงหาผลลัพธ์ของคำาถามต่อไปนี้ 34 คำาถามท้ายบท 1 2 3 4 5 6 7 T: 8 9 10 11 3.1 ถ้าให้ T เป็นไบนารีทรี ทรีต้นนี้ มีความสูงเท่าใด 3.2 ทรี T จะมีจำานวนโหนดมาก ที่สุดเท่าใด ถ้าความสูงของทรี T มี ค่าเป็น 7
  • 35. (4) จงใช้ข้อมูลที่กำาหนดให้ต่อไปนี้ นำาไปสร้าง BST: T2 ข้อมูล = {25,30,73,12,9,84,49,11,98,77,33,130} 35 คำาถามท้ายบท (5) จาก BST ในข้อ 4 ถ้าต้องการทราบว่ามีข้อมูล 53 อยู่ใน T2 หรือไม่ จะต้องทำาการเปรียบเทียบทั้งหมดกี่ครั้งถึงจะทราบคำา ตอบ (6) จาก BST ในข้อ 4 จะสามารถสร้างทรีที่มีความสูงน้อยที่สุด ด้วยค่าความสูงเท่าใด
  • 36. Final Exam 1/53 • 1.(10) ตรวจสอบสมบัติความสัมพันธ์ • 2.(10) การแทนกราฟ • 3.(10) isomorphic • 4.(10) graph connectivity • 5.(15) Dijkstra’s algorithm • 6.(10) Prim’s algorithm • 7.(5) วงจรตรรกเชิงผสม • 8.(10) วงจรตรรกเชิงผสม 36