ต้นไม้ ( Tree)staff.cs.psu.ac.th/pennee/344-281/10-Tree.pdf · 2018-10-17 ·...

13
ต้นไม้ ( Tree) 10.1 ต้นไม้ (Tree) ทรี T เป็น connected undirected simple graph ที่ไม่มี cycle ( จุดจบวนกลับมาที่จุดเริ่มต้น ) ป่า ( forest ) ประกอบขึ้นจาก ทรี T 1 ตัวอย่าง กราฟที่เป็น ทรี รูปที1 แสดงกราฟที่เป็นทรี

Transcript of ต้นไม้ ( Tree)staff.cs.psu.ac.th/pennee/344-281/10-Tree.pdf · 2018-10-17 ·...

Page 1: ต้นไม้ ( Tree)staff.cs.psu.ac.th/pennee/344-281/10-Tree.pdf · 2018-10-17 · ต้นไม้ (Tree)10.1 ต้นไม้ (Tree) ทรี T เป็น connected

ตนไม (Tree)

10.1 ตนไม (Tree)

ทร T เปน connected undirected simple graph ทไมม cycle (จดจบวนกลบมาทจดเรมตน)

ปา (forest) ประกอบขนจาก ทร T 1

ตวอยาง

กราฟทเปน ทร

รปท 1 แสดงกราฟทเปนทร

Page 2: ต้นไม้ ( Tree)staff.cs.psu.ac.th/pennee/344-281/10-Tree.pdf · 2018-10-17 · ต้นไม้ (Tree)10.1 ต้นไม้ (Tree) ทรี T เป็น connected

ตวอยาง

กราฟทไมใชทร

รปท 2 แสดงกราฟทไมเปนทร

ขอสงเกต

1. กราฟ G เปน ทร กตอเมอ ม path ระหวางจด 2 จด ใดๆ ในกราฟ G 2. ทร T ประกอบดวย n จด และ n-1 ดาน 3. ทร T = (V,E) ซงม จ านวนจด | V | 2 มจดอยางนอยทสด 2 จด ทม ดกรเปน 1

นยาม Rooted Tree แทนดวย (T, r) ซงประกอบดวย T = (V,E) และ r V ซงถกเลอกเปนราก

(root) ของทร

ขอสงเกต

ดานของทรทไดรบการก าหนดราก r แลว จะเสมอนถกก าหนดทศทางจาก r ไป ยง จด v นนๆ

Page 3: ต้นไม้ ( Tree)staff.cs.psu.ac.th/pennee/344-281/10-Tree.pdf · 2018-10-17 · ต้นไม้ (Tree)10.1 ต้นไม้ (Tree) ทรี T เป็น connected

ตวอยาง

รปท 3 แสดง Rooted Tree (T,c)

ตวอยาง

Page 4: ต้นไม้ ( Tree)staff.cs.psu.ac.th/pennee/344-281/10-Tree.pdf · 2018-10-17 · ต้นไม้ (Tree)10.1 ต้นไม้ (Tree) ทรี T เป็น connected

ศพททควรรเกยวกบทร

ก าหนด rooted tree (T,r) ทม r เปนราก ดงภาพ

รปท 4 แสดง Rooted Tree (T,r)

1. ส าหรบ จด v r โหนด พอ-แม (parent) u ทกอใหเกดดาน (u, v) E จะเรยกจด v วาเปนโหนดลก (child) ของ u และเรยกจดสองจดใดๆทม โหนดพอ-แมรวมกนวาโหนดญาต ( siblings)

2. โหนด ใบ (leaf) คอ โหนดทไมมโหนดลก และ เรยก โหนดทอยถดจากโหนดลกวา โหนดภายใน (internal vertices)

3. ความสง (height) ของทร วดจากเสนทางทยาวทสด จาก ราก ไป ยงใบ ของทรตนนนๆ 4. บรรพบรษ (ancestors ) ของโหนด v คอทกโหนด u ทไมใช v (u v) ซงมทศจาก u ไป v 5. ลกหลาน (descendants) ของโหนด v คอทกโหนด u ทไมใช v (u v) ซงมทศจาก v ไป u 6. ซบทร (subtree) ทไดรบการก าหนดให รากเปน จด v และ โหนดลกหลานของ v

รปท 5 แสดง Subtree ของ Tree (T,r)

Page 5: ต้นไม้ ( Tree)staff.cs.psu.ac.th/pennee/344-281/10-Tree.pdf · 2018-10-17 · ต้นไม้ (Tree)10.1 ต้นไม้ (Tree) ทรี T เป็น connected

10.2 ชนดของทร

m-ary Trees

นยาม m-ary Trees ส าหรบ m 1 จะเรยก rooted tree วาเปน m-ary tree ถา ทกโหนด

ภายใน (internal nodes) มลกอยางมากทสด m จ านวน

และ จะเปน full m-ary tree ถาทกโหนดภายใน (internal node) มลกเปน m จ านวน

รปท 6 แสดง m-ary Trees

Page 6: ต้นไม้ ( Tree)staff.cs.psu.ac.th/pennee/344-281/10-Tree.pdf · 2018-10-17 · ต้นไม้ (Tree)10.1 ต้นไม้ (Tree) ทรี T เป็น connected

Rooted ordered tree

นยาม rooted ordered tree เปน rooted tree (T,r) ซง ลกของแตละโหนดภายใน

(internal vertex) v ใดๆ ถกจดเรยงในลกษณะล าดบเชงเสน v

หมายเหต ทรมกจะจดเรยงคานอยอยในโหนดทางซายและคามากอยในโหนดทางขวา

หาก rooted ordered tree เปน binary tree โหนดทางซายถกเรยกวา left child โหนด

ทางขวาถกเรยกวา right child

รปท 7 แสดง rooted ordered tree

ทฤษฎบท ส าหรบทก m 1 ทก full m-ary tree ซงมจ านวน i โหนดภายใน จะมจ านวน

จดทงสน

n = mXi + 1 จด

ทฤษฎบท ส าหรบทก m 1 full m-ary tree ใดๆ ซงม n โหนด จะมโหนดภายใน i = (n-

1)/m จ านวน และม leaf l = [(mn-n)+1]/m จ านวน

Spanning Trees

ส าหรบ simple undirected graph G ใดๆ Spanning Tree ของ กราฟ G เปนสบกราฟ T

ของ G ซง ทร T ประกอบดวยทกจดของกราฟ G

Page 7: ต้นไม้ ( Tree)staff.cs.psu.ac.th/pennee/344-281/10-Tree.pdf · 2018-10-17 · ต้นไม้ (Tree)10.1 ต้นไม้ (Tree) ทรี T เป็น connected

ทฤษฎบท ทก connected graph G ใดๆ จะม spanning tree

ตวอยาง

จาก simple undirected graph G ทก าหนดให จงหา spanning tree

วธท า

Spanning Tree ของ กราฟ G เปนสบกราฟ T ของ G ซง ทร T ประกอบดวยทกจดของ

กราฟ G ทไมม cycle

Page 8: ต้นไม้ ( Tree)staff.cs.psu.ac.th/pennee/344-281/10-Tree.pdf · 2018-10-17 · ต้นไม้ (Tree)10.1 ต้นไม้ (Tree) ทรี T เป็น connected

10.3 Minimal Spanning Tree

Minimal Spanning Tree

นยาม Minimal Spanning Tree เปน undirected connected graph G ทมคาน าหนกก ากบ

อยบนดานของกราฟ G โดยจะใหผลรวมของคาน าหนกของ ทรนอยทสด

ตวอยาง

จงหา minimal spanning จากกราฟทก าหนด

วธท า

Spanning Tree ทเปนไปไดทงหมด

Page 9: ต้นไม้ ( Tree)staff.cs.psu.ac.th/pennee/344-281/10-Tree.pdf · 2018-10-17 · ต้นไม้ (Tree)10.1 ต้นไม้ (Tree) ทรี T เป็น connected

ดงนน minimal spanning tree คอ Tree 2 ม weigh รวมทนอยทสด = 71

ตวอยาง

จงหา minimal spanning จากกราฟทก าหนด

วธท า

Spanning Tree ทเปนไปไดทงหมด

Page 10: ต้นไม้ ( Tree)staff.cs.psu.ac.th/pennee/344-281/10-Tree.pdf · 2018-10-17 · ต้นไม้ (Tree)10.1 ต้นไม้ (Tree) ทรี T เป็น connected

ดงนน minimal spanning tree คอ MST1 และ MST2 ม weigh รวมทนอยทสด =

1+2+24+67 = 94

Prim’s algorithm

ขนตอนวธในการหา minimal spanning tree ตามขนตอนวธของ Prim

1, เลอกจด r ทเปน root ของ spanning tree โดยก าหนด S = {r} และ A = {}

2. เลอกดานทม weigh นอยทสดทเชอมกบจดใดจดหนงใน เซต S แลวน าจดปลายของดาน

ทเลอกเพมในเซต S และเพมดานทเลอกในเซต A

3. ท าขนตอนท 2 ซ า จนกวาจดทกจดไดรบการเลอก

Page 11: ต้นไม้ ( Tree)staff.cs.psu.ac.th/pennee/344-281/10-Tree.pdf · 2018-10-17 · ต้นไม้ (Tree)10.1 ต้นไม้ (Tree) ทรี T เป็น connected

ตวอยาง จาก undirected connected weighed graph G ทก าหนดให

จงหา minimal spanning tree โดยขนตอนวธ Prim

วธท า

Page 12: ต้นไม้ ( Tree)staff.cs.psu.ac.th/pennee/344-281/10-Tree.pdf · 2018-10-17 · ต้นไม้ (Tree)10.1 ต้นไม้ (Tree) ทรี T เป็น connected
Page 13: ต้นไม้ ( Tree)staff.cs.psu.ac.th/pennee/344-281/10-Tree.pdf · 2018-10-17 · ต้นไม้ (Tree)10.1 ต้นไม้ (Tree) ทรี T เป็น connected

ดงนน minimal spanning tree โดยขนตอนวธ Prim มคาเทากบ 28 หนวย