cs321 : data structure / algorithm analysismathcom.uru.ac.th/~beebrain/slide/4122303a/tree.pdf ·...
TRANSCRIPT
![Page 1: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/1.jpg)
โครงสร้างข้อมูลแบบทรี (Tree)
![Page 2: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/2.jpg)
Tree
• โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน ๆ จะพบว่า ข้อมูลแต่ละตัวมีความสัมพันธใ์นรูปเชิงเส้น หรือแบบเชิง 1 มิติ
• โครงสร้างข้อมูลแบบไม่เชิงเส้น ซึ่งสามารถแสดงถึงความสัมพันธ์ที่ซับซ้อนกว่า และโครงสร้างขอ้มูลแบบไม่เชิงเส้นที่ส าคัญที่สุดคือ Tree เป็นความสัมพันธ์ระหว่าง node ที่เป็นล าดับชั้นลดหลั่นกัน( Hierarchical Relationship )
2
![Page 3: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/3.jpg)
Tree
• รูปแบบของ tree ถูกน ามาประยุกต์ในหลาย ๆ ด้านเพื่อใช้ ในการแสดงความสัมพันธ์ระหว่างข้อมูล
ตัวอย่างการใช้ tree1 เพื่อใชใ้นการแสดงความสัมพันธ์ของ
ครอบครัว
2. แสดงแผนผังการจัดบุคคลในบริษัท โดยจัดล าดับตามต าแหน่ง
3. การจดัท าสารบัญหนังสือในแบบโครงสร้างของ tree
3
![Page 4: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/4.jpg)
Tree
4
![Page 5: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/5.jpg)
นิยามของ Tree
1. ในเชิง Math มีลักษณะเปน็รีเคอร์ซีฟ
2. Tree เป็น set จ ากดั T ที่มีสมาชิก 1 Node หรือ มากกว่า ซึ่งมี node พิเศษ 1 node เรียก Root
3. Node อื่นๆ ทีเ่หลือจะถกูแบ่งออกเป็นกลุ่มทีไ่มม่ีสมาชิกรว่มกัน
สมมุติชื่อคือ T1 ,, T2 ,… Tn ( n >= 0 )โดยมีโครงสร้างเป็น ต้นไม้ย่อย เรียก Subtree เมื่อ n คือจ านวนกลุ่มต้นไม้ย่อย
5
![Page 6: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/6.jpg)
นิยามของ Tree
6
V0 เป็น root ของ Tree ที่มีสมาชิกคือ{ V1 , V2 , V3 , V4 , V5 , V6 , V7 }
ต้นไม้ย่อย T1
ต้นไม้ย่อย T2
![Page 7: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/7.jpg)
นิยามของ Tree
7
V1 เป็น root ของ Tree ที่มีสมาชิกคือ { V3 , V4 }
ต้นไม้ย่อย T1ต้นไม้ย่อย
T2
![Page 8: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/8.jpg)
นิยามของ Tree
8
V2 เป็น root ของ Tree ที่มีสมาชิกคือ
![Page 9: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/9.jpg)
นิยามของ Tree
ความสัมพันธ์ ระหว่าง Root node กับ Sub Tree เป็นลักษณะ พ่อ กับลูก (Parent and child )
• พ่อ (Father) คือ node ที่เป็น root ของ Tree หรือroot ของ Subtree
• ลูก (child ) คือ node ที่เชื่อมโยงต่อจาก node ที่เป็นพ่อ
9
![Page 10: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/10.jpg)
นิยามของ Tree
10
A
B D
E F GT
C
H
พ่อ (Father)
ลูก(child )พ่อ (Father)
ลูก(child )
![Page 11: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/11.jpg)
ค าศัพท์ส าหรับ Tree
1. Brother Node : Node ที่มีพ่อแม่เดียวกัน
2. Branch / Edge ( เอดจ์) : กิ่งเป็นเส้นเชื่อม ระหว่างพ่อกับลูก
3. Degree : จ านวนลูก หรอื ต้นไม้ย่อยของแต่ละ node
4. Leaf node : (ลีฟโหนด) คือ Node ที่ไม่มีลกู Degree = 0
5. Branch Node : Node ที่ไม่ใช่ Root , Leaf Degreeไม่เป็น 0
11
![Page 12: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/12.jpg)
12
1. Brother Node : Node ที่มีพ่อเดียวกัน2. Branch / Edge : กิ่งเป็นเส้นเชื่อม ระหว่างพ่อกับลูก
A
B D
E F GT
C
H Leaf Node
Brother Node = {BCD} {EF} {HT}
Branch Node
Branch/Edge
ค าศัพท์ส าหรับ Tree
![Page 13: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/13.jpg)
13
A
B D
E F GT
C
HLeaf Node
4. Leaf node (ลีฟโหนด) คือ Node ที่ไม่มีลูก Degree = 05. Branch Node Node ที่ไม่ใช่ Root , Leaf Degreeไม่เป็น 0
Degree : จ านวนลูก หรอื ต้นไม้ย่อยของแต่ละ node
3
2 1 2
ค าศัพท์ส าหรับ Tree
![Page 14: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/14.jpg)
14
A
B D
E F G T
C
H
Descendant ของ A
5. Descendant ลูกหลาน / Successor ผู้มาทีหลังDescendant ของ node x คือ ทุก node ที่ link ต่อ x ลงมาทั้งหมด
ค าศัพท์ส าหรับ Tree
![Page 15: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/15.jpg)
15
Direct Descendant ของA
Immediate Successor / Direct Descendant/ Son ลูกหลานโดยตรง
A
B D
E F G T
C
H
ค าศัพท์ส าหรับ Tree
![Page 16: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/16.jpg)
16
A
B D
E F G T
C
H
B และ A คือ Ancestor ของ E และ F
6. Ancestor บรรพบุรุษ / Predecessor ผู้มาก่อน Ancestor ของ node x คือ ทุก node ที่ Link อยูเ่หนือ x
ค าศัพท์ส าหรับ Tree
![Page 17: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/17.jpg)
17
A
B D
E F G T
C
H
B คือ Father ของ E และ F
7. Immediate Predecessor / Direct Ancestor / Father
ค าศัพท์ส าหรับ Tree
![Page 18: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/18.jpg)
ค าศัพท์ส าหรับ Tree
8 . Level ของ node (ระดบั)
- ระยะทางตามแนวดิ่งของ node ว่าอยู่ห่างจาก root เท่าไร
- เป็นหมายเลขแสดงระดับของ node ในต้นไม้
- ถ้า node มีระดับ L
-> node ที่เชื่อมต่อจากมันมีระดับ L+1
9. Height หรือ ระดับ( Level )ที่สูงสุดของ tree 18
![Page 19: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/19.jpg)
19
A
B D
E F G T
C
H
Level : 1 . . . . . . . . . . . . . .
Level : 2 . . .
Level : 3
Height : 3ค าศัพท์ส าหรับ Tree
![Page 20: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/20.jpg)
20
A
B D
E F G T
C
H
Level : 0 . . . . . . . . . . . . . .
Level : 1. . .
Level : 2
Height : 3หนังสือบางเล่ม
ค าศัพท์ส าหรับ Tree
![Page 21: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/21.jpg)
21
R
TS
U V WX
Y Z
RootLevel 1
Level ….
Level …
Level …..
Subtree ของ node …….
Son of ….
Father of ….
Ancestors of …….
Descendant of …..
Height of a tree = ……………………...
Brother node of …….
ค าศัพท์ส าหรับ Tree
![Page 22: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/22.jpg)
22
Notation: Node, children, edge, parent, ancestor, descendant, path, depth,
height, level, leaf node, subtree.
R
TS
U V WX
Y Z
Root
Internal node
Leaf
Level 1
Level 2
Level 3
Level 4 SubtreeSon of T
Father of V
Ancestors of V
Descendant of T
Height of a tree = 1+ max(depth of a node) = 4
Brother node of U
depth of a node = จ านวน ของ edge จาก root - node
ค าศัพท์ส าหรับ Tree
![Page 23: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/23.jpg)
23
R
TS
U V WX
Y Z
9. ปา่ (Forest)
TS
U V WX
Y Z
ค าศัพท์ส าหรับ Tree
![Page 24: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/24.jpg)
Ordered Tree (ออรเ์ดอร์ทร)ี หรือ ต้นไมท้ีม่ีแบบ
แผน
• Tree ที่ node ใด ๆ มี subtree หรือ degree ตั้งแต่ 2
ขึ้นไป
• โหนดต่าง ๆ ของต้นไม้นั้นมีความสัมพันธ์ที่แน่นอนประการหนึ่ง เช่น
ก่อน , ไปทางขวา , ไปทางซ้าย
• ถา้ไมม่ีความสัมพนัธ์ที่แน่นอน เราเรียกวา่
Ordted tree 24
Ordered Tree
![Page 25: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/25.jpg)
25
A
B C
D
I J
A
B
D
F E
C
Ordered Tree
Ordered Tree
![Page 26: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/26.jpg)
ตัวอย่างโครงสร้างทรี
• นิพจนท์างคณิตศาสตร์
• Decision Trees
• การแยกประเภทหนังสือในห้องสมุด
26
Tree
![Page 27: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/27.jpg)
เราสามารถใช้โครงสร้างของ Tree ในการแทนนิพจน์ทางคณิตศาสตร์
โดยจัดให้
1. node สาขา (Branch node) เป็น node ส าหรับเครื่องหมายการค านวณ
2. ส่วน node ปลาย (Leaf node) เป็น node ส าหรับตัวถูกกระท าของเครื่องหมายการค านวณน้ัน ๆ
27
นิพจน์ทางคณิตศาสตร์
![Page 28: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/28.jpg)
28
V1 * V2 – (V3 + V4 ^ V5 )
Tree
![Page 29: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/29.jpg)
• Tree ชนิดนี้มักเกิดขึ้นในการประยุกต์เกี่ยวกับการเล่นเกม
หรืองานเกี่ยวกับการสร้างแบบจ าลองเหตุการณ์
ตัวอย่างการน าไปใช้ในการเล่นเกม โดยแตล่ะ node
ของ tree จะใช้แทนการตัดสินใจว่าจะเล่นต่อไปอย่างไร
tree ที่ใช้แทนการเล่นเกมน้ีเรียก ทรีเกม ( Game Tree )
ซึ่งขนาดของ ทรีเกม มักจะมีขนาดใหญ่
29
Decision Trees
![Page 30: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/30.jpg)
30
Decision Trees
![Page 31: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/31.jpg)
• ระบบการจดัท า Catalog ของห้องสมดุ ส่วนใหญ่จะใช้
โครงสรา้งของทรี
เช่นตัวอย่างระบบดวิวี่ ( Dewey Decimal System )
ซึ่งจะจัดเปน็ระบบลดหลั่นลงมา โดยเริ่มจากความรู้กว้าง ๆ
ก่อน แล้วแยกออกเป็นแผนกย่อยตามสาขาวชิาที่ละเอียดขึ้น
หรือลักษณะการจดัท าสารบัญหนังสือ ที่มีการจัดท าเป็น
หัวข้อเรื่องใหญ่ และมหีัวข้อย่อยในแต่ละเรื่อง เป็นต้น
31
การแยกประเภทหนังสือในห้องสมุด
![Page 32: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/32.jpg)
32
การแทนโครงสร้างต้นไม้ในคอมพิวเตอร์
![Page 33: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/33.jpg)
Array Implementation
33
Linked Lists Implementation
![Page 34: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/34.jpg)
34
Binary Tree(ต้นไม้ทวิภาค)
![Page 35: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/35.jpg)
• ในแต่ละ node จะมี subtree หรือ degree ได้ไม่เกิน 2
• ถ้ามี subtree เดียว ต้องระบุดว้ยว่า เป็น node ทางซา้ย
หรือทางขวา ของ Root
35
T = NULL
Binary Tree
![Page 36: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/36.jpg)
มองในเชิง Math ค าจ ากัดความของ Binary tree จะเป็นrecursive
• เป็น set จ ากดัของ node ที่อาจเป็น set ว่าง หรือประกอบด้วยnode ที่เรียก Root และ node ที่เหลือแบง่ออกเปน็ subtree ที่ไม่มี node ร่วมกัน โดย subtree กจ็ะเป็น binary tree ด้วย
• Left และ Right Subtree
36
T = NULL
Binary Tree
![Page 37: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/37.jpg)
Binary Tree Example
37
Max depth = 3
Height = 4Right sonLeft son
Binary Tree
![Page 38: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/38.jpg)
Complete Binary Trees
38
15
165
ความสัมพันธ์ระหว่างระดับและจ านวน node
n = 2l -1 เมื่อ l คือ max level
Binary Tree
3 12 201
![Page 39: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/39.jpg)
Array Implementation
39
----10--8--6--4--2--Right Sibling
--9--7--5--3--1----Left Sibling
--------------108642Right Child
------------1197531Left Child
54433221100--Parent
11109876543210Position
Binary Tree
![Page 40: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/40.jpg)
Linked List Implementation
40
DATA
RsonLson
Binary Tree
![Page 41: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/41.jpg)
41
การแปลง Treeไปเป็น Binary Tree
![Page 42: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/42.jpg)
การแปลง tree ไปเป็น binary tree • โครงสร้าง Tree มักมี degree > 2
• ดังนั้นการสร้างจึงต้องก าหนด เขตเชื่อมโยงให้พอ
• บาง node ใชค้รบ บาง node ไม่ครบ
42
การแปลง Tree ไปเป็น Binary Tree
![Page 43: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/43.jpg)
43
R
TS
U V WX
Y Z
การแปลง Tree ไปเป็น Binary Tree
![Page 44: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/44.jpg)
ขั้นตอน
1. ให้เช่ือม node ที่มีพ่อเดียวกัน ( node พี่น้อง) เข้าด้วยกัน
- ลบเส้นเชื่อมโยงจาก node ที่เป็นพ่อไปยังลูก ๆ ออกให้หมด
ยกเว้น ลูกที่อยู่ต าแหน่งซ้ายสุด
2. เลือก son ทางซ้ายและขวา ของแต่ละ node
- son ทางซ้าย คือ node ทีอ่ยู่ใต้ node นั้น
- son ทางขวา คือ node ที่อยู่ข้าง ๆ (ระดบัเดียวกัน / Brother )
44
การแปลง Tree ไปเป็น Binary Tree
![Page 45: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/45.jpg)
45
เริ่มต้น A
B D
E F G T
C
H
1.ให้เชื่อม node ที่มีพ่อเดียวกัน ( node พี่น้อง) เข้าด้วยกัน
การแปลง Tree ไปเป็น Binary Tree
![Page 46: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/46.jpg)
46
A
B D
F G T
C
H
ขั้นที่ 1
E
1.ให้เชื่อม node ที่มีพ่อเดียวกัน ( node พี่น้อง) เข้าด้วยกัน
การแปลง Tree ไปเป็น Binary Tree
![Page 47: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/47.jpg)
47
A
B D
F G T
C
HE
1. ลบเส้นเชื่อมโยงจาก node ที่เป็นพ่อไปยัง ลูก ๆ ออกให้หมด ยกเว้น ลูกที่อยู่ต าแหน่งซ้ายสุด
ขั้นที่ 1-1
การแปลง Tree ไปเป็น Binary Tree
![Page 48: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/48.jpg)
48
A
B
D
FG
T
C
H
Eเลือก son ทางซ้ายและขวา ของแต่ละ node
- son ทางซ้าย คือ node ทีอ่ยู่ใต้ node นัน้ - son ทางขวา คือ node ทีอ่ยู่ข้าง ๆ
(ระดับเดียวกัน / Brother )
ขั้นที่ 2
การแปลง Tree ไปเป็น Binary Tree
![Page 49: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/49.jpg)
แบบฝึกหัด
49
จงแปลง Tree ให้เป็น Binary Tree
1
2
6
10
7
3 4 5
8 9
A
C
G
B
ED F
J K L M
CB
A
D
![Page 50: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/50.jpg)
การแปลง Forest ไปเป็น binary tree
• ท าแบบเดียวกนักับ การแปลง tree ไปเป็น binary tree
• คือ เชื่อม Root เข้าด้วยกัน และท าในส่วนของ Subtree ด้วย
50
การแปลง Forest ไปเป็น Binary Tree
![Page 51: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/51.jpg)
51
A
B
D
C
เริ่มต้น
E
GF H
J K
การแปลง Forest ไปเป็น Binary Tree
![Page 52: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/52.jpg)
52
A
B
D
C
Step 1
E
GF H
J K
การแปลง Forest ไปเป็น Binary Tree
![Page 53: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/53.jpg)
53
A
B
D
C
E
GF
HJ
KStep 2
การแปลง Forest ไปเป็น Binary Tree
![Page 54: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/54.jpg)
54
Binary Search Tree
![Page 55: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/55.jpg)
55
ต าแหน่งของการเอา node เข้าไปไว้ใน tree จะขึ้นกับข้อมูลที่เก็บในแต่ละ Node และลักษณะ Tree
*** ไม่สามารถก าหนด ต าแหน่งได้65
40 75
70 9530 55
35 80
โดยโครงสร้างของทรีแบบนี้ คือค่า key หลักในโหนดใด ๆ จะต้อง1. มากกว่าค่า key ของ node
ที่อยู่ทางซ้าย2. และน้อยกว่าค่า key ของ node
ที่อยู่ทางขวา
Binary Search Tree
![Page 56: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/56.jpg)
56
โดยโครงสร้างของทรีแบบนี้ คือ ค่าkey หลักในโหนดใด ๆ จะต้อง1. มากกว่าค่า key ของโหนดที่อยู่ทางซ้าย2. และน้อยกว่าค่า key ของโหนดที่อยู่ทางขวา
65
40 75
70 9530 55
35 80
Binary Search Tree
![Page 57: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/57.jpg)
57
โดยโครงสร้างของทรีแบบนี้ คือ ค่าkey หลักในโหนดใด ๆ จะต้อง1. มากกว่าค่า key ของโหนดที่อยู่ทางซ้าย2. และน้อยกว่าค่า key ของโหนดที่อยู่ทางขวา
65
40 75
70 9530 55
35 80
Binary Search Tree
![Page 58: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/58.jpg)
58
Ken , 45
Jim , 35 Mandy , 15
Bobby , 60 Jone , 40 Patty , 60
John , 20
คีย์หลักคือชื่อหรืออายุ ?
Binary Search Tree
![Page 59: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/59.jpg)
59
การสร้าง Binary Search Tree
- การสร้างจะ เป็นการ Add สมาชิก 1 ตัว ( node ) เข้าไปใน Tree
- เริ่มหาที่ Root เสมอ และท่องไปตาม node ต่าง ๆ ตามล าดับ เพื่อ
หาต าแหน่งที่เหมาะสมส าหรับ node ใหม่
Binary Search Tree
![Page 60: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/60.jpg)
60
65
65ADD Root
65 40 75 30 55 35 70 95 80
Binary Search Tree
![Page 61: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/61.jpg)
61
65
40
40ADD
65 40 75 30 55 35 70 95 80
การสร้าง Binary Search Tree
![Page 62: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/62.jpg)
62
65
40 75
75ADD
65 40 75 30 55 35 70 95 80
การสร้าง Binary Search Tree
![Page 63: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/63.jpg)
63
65
40 75
30
30ADD
65 40 75 30 55 35 70 95 80
การสร้าง Binary Search Tree
![Page 64: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/64.jpg)
64
65
40
30 55
55ADD
75
65 40 75 30 55 35 70 95 80
การสร้าง Binary Search Tree
![Page 65: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/65.jpg)
65
65
40
30 55
35
35ADD
75
65 40 75 30 55 35 70 95 80
การสร้าง Binary Search Tree
![Page 66: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/66.jpg)
66
65
40 75
7030 55
35
70ADD
65 40 75 30 55 35 70 95 80
การสร้าง Binary Search Tree
![Page 67: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/67.jpg)
67
65
40 75
7030 55
35
95ADD
95
65 40 75 30 55 35 70 95 80
การสร้าง Binary Search Tree
![Page 68: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/68.jpg)
68
65
40 75
70 9530 55
35 80
80ADD
การสร้าง Binary Search Tree
![Page 69: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/69.jpg)
69
65
40 75
70 9530 55
35 80
สรุป การสร้าง Binary search Tree ตามล าดับ ดังต่อไปนี้
65 40 75 30 55 35 70 95 80
การสร้าง Binary Search Tree
![Page 70: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/70.jpg)
70
65
40 75
70 9530 55
35 80
40ADD
ซ้ า !! 1. ทิ้งไปเลย
การสร้าง Binary Search Tree
![Page 71: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/71.jpg)
71
65
40 75
70 9530 55
35 80
40ADD
ซ้ า !!
2 . เก็บความถี่ Node ที่ซ้ า
2
การสร้าง Binary Search Tree
![Page 72: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/72.jpg)
72
65
40 75
70 9530 55
35 80
40ADD
3. ใช้ List list มาเชื่อม40ซ้ า !!
การสร้าง Binary Search Tree
![Page 73: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/73.jpg)
73
แบบฝึกหดั
สร้าง Binary Search Tree จากการ Add ข้อมูล
ตามล าดับ
65 40 30 70 75 55 35 95 80
การสร้าง Binary Search Tree
![Page 74: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/74.jpg)
74
Complete Binary Tree
![Page 75: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/75.jpg)
Complete Binary Trees
75
15
165
ความสัมพันธ์ระหว่างระดับและจ านวน node
n = 2l -1 เมื่อ l คือ max level
Complete Binary Tree
3 12 201
![Page 76: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/76.jpg)
76
65
40 70
75 8035 55
Height : 3
จ านวน Node ทั้งหมด n
n = 2 l - 1 เมือ l คือ Max level ของ Tree
Complete Binary Tree
![Page 77: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/77.jpg)
77
65
40 70
75 8035 55
Height : 3
Max level = 1 n = 21-1 = 1Max level = 2 n = 22-1 = 3Max level = 3 n = 23-1 = 7
Complete Binary Tree
![Page 78: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/78.jpg)
78
65
40 70
75 8035 55
n = 2l-17 = 2l-1
2l = 7+1 = 8 = 23
ถ้า n = 7 node ได้ Complete Binary Tree มีความสูงเท่าใด ?
n = 2l-1n+1 = 2l
log2( n+1) = log2 2l
log2( n+1) = lHeight (l) = max level = log2( n+1)
Complete Binary Tree
![Page 79: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/79.jpg)
79
การท่องเข้าไปในBinary Tree
(Binary Tree Traversals)
![Page 80: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/80.jpg)
การท่องเข้าไปใน Binary Tree• การท่องเข้าไปใน Binary Tree คือ การเข้าไปเยี่ยม node ต่างๆ node ละ 1 ครั้ง จนครบทุก node
อย่างมีแบบแผน
• การเยี่ยมอาจเป็นการเข้าไปอ่านข้อมลู หรือ ประมวลผลใดๆ
• หลักการส าคัญของการท่องเข้าไปใน Binary Tree คือ เยี่ยม Root ( R ) , Subtree ด้านซ้าย ( TL ) , Subtree ด้านขวา ( TR )
ซึ่งมีอยู่ 3 วิธี (ขึ้นอยู่กับว่าจะเยี่ยมสว่นใดก่อน)1. Inorder Traversal
จะเยี่ยม TL R TR ( Root อยู่ข้างใน)2. Preorder Traversal
จะเยี่ยม RTL TR ( Root อยู่ก่อน)3. Postorder Traversal
จะเยี่ยม TL TR R ( Root อยู่หลัง)
80
![Page 81: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/81.jpg)
การท่องเข้าไปใน Binary Tree• Binary Tree จะประกอบด้วย Subtree
และใน Subtree ประกอบด้วย Subtree ย่อยๆ อีก ดังนั้นเพื่อให้ง่าย จะแทน root ของ subtree ใดๆ ด้วย จะได้
81
A
B C
D E F
G H ILeft Subtree Right Subtree
Root node
E
G H I
A
C
F
B
D
![Page 82: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/82.jpg)
Inorder Traversal
• Inorder Traversalจะเยี่ยม TL R TR ( Root อยู่ข้างใน)
1. เยี่ยม Left Subtree แบบ Inorder2. เยี่ยม Root3. เยี่ยม Right Subtree แบบ Inorder
82
A
B C
D E F
G H ILeft Subtree Right Subtree
Root node
![Page 83: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/83.jpg)
Inorder Traversal
83
ดังนั้นการท่องเข้าไปใน Binary Tree ด้วยวิธี Inorder จะได้ DGBAECHFI
1 E
G H I
A
C
F
B
D
เข้าไปใน Subtree ย่อยสุดทางซ้ายก่อนแล้ว Root ของ Subtree นั้นแล้วเข้าไปใน Subtree ทางขวา
2
3
4
5
6
7
8
9
![Page 84: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/84.jpg)
Preorder Traversal
• Preorder Traversalจะเยี่ยม RTL TR ( Root อยู่ก่อน)
1. เยี่ยม Root 2. เยี่ยม Left Subtree แบบ Preorder3. เยี่ยม Right Subtree แบบ Preorder
84
A
B C
D E F
G H ILeft Subtree Right Subtree
Root node
![Page 85: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/85.jpg)
Preorder Traversal
85
ดังนั้นการท่องเข้าไปใน Binary Tree ด้วยวิธี Preorder จะได ้ ABDGCEFHI
3 E
G H I
A
C
F
B
D
เข้าไปใน Root ของ Subtree นั้นก่อนแล้วเข้าไปใน Subtree ทางซ้ายแล้วเข้าไปใน Subtree ทางขวา
4
2
1
6
5
8
7
9
![Page 86: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/86.jpg)
Preorder Traversal
• Preorder Traversalจะเยี่ยม RTL TR ( Root อยู่ก่อน)
1. เยี่ยม Root
2. เยี่ยม Left Subtree แบบ Preorder3. เยี่ยม Right Subtree แบบ Preorder
86
A
B C
D E F
G H ILeft Subtree Right Subtree
Root node
![Page 87: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/87.jpg)
Preorder Traversal
87
ดังนั้นการท่องเข้าไปใน Binary Tree ด้วยวิธี Preorder จะได ้ ABDGCEFHI
3 E
G H I
A
C
F
B
D
เข้าไปใน Root ของ Subtree นั้นก่อนแล้วเข้าไปใน Subtree ทางซ้ายแล้วเข้าไปใน Subtree ทางขวา
4
2
1
6
5
8
7
9
![Page 88: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/88.jpg)
Postorder Traversal
• Postorder Traversalจะเยี่ยม TL TRR ( Root อยู่หลัง)
1. เยี่ยม Left Subtree แบบ Postorder2. เยี่ยม Right Subtree แบบ Postorder
3. เยี่ยม Root
88
A
B C
D E F
G H ILeft Subtree Right Subtree
Root node
![Page 89: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/89.jpg)
Postorder Traversal
89
ดังนั้นการท่องเข้าไปใน Binary Tree ด้วยวิธี Postorder จะได ้ GDBEHIFCA
2 E
G H I
A
C
F
B
D
เข้าไปใน Subtree ทางซ้ายก่อนแล้วเข้าไปใน Subtree ทางขวาแล้วเข้าไปใน Root ของ Subtree นั้น
1
3
9
4
8
5
7
6
![Page 90: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/90.jpg)
Tree Traversal
• Preorder
90
A
B C
D E F G
![Page 91: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/91.jpg)
Tree Traversal
• Inorder
91
A
B C
D E F G
![Page 92: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/92.jpg)
Tree Traversal
• Postorder
92
A
B C
D E F G
![Page 93: CS321 : Data Structure / Algorithm Analysismathcom.uru.ac.th/~beebrain/Slide/4122303A/Tree.pdf · •โครงสร้างข้อมูลที่ได้เรียนมาในบทก่อน](https://reader033.vdocuments.site/reader033/viewer/2022041616/5e3b465664022c3d3a48750b/html5/thumbnails/93.jpg)
แบบฝึกหัด
93
จงท่องเข้าไปใน Binary Tree ต่อไปนี้ในแบบPreorder, Inorder และ PostOrder
A
B D
C
+
A -
* D
B C
A
B C
D
E
E
G
1.
2.
3.