מבני נתונים ואלגוריתמים - מחברת קורס/גרפים/עצים
תבנית:מבני נתונים ואלגוריתמים - מחברת קורס
דף זה עוסק בעצים, שהם סוג מסוים וחשוב מאד של גרפים. הדף מגדיר הן עצים מכוונים והן עצים לא מכוונים (על גרפים מכוונים ולא מכוונים, בהתאמה), אך מתמקד בעיקר בעצים לא מכוונים.
הגדרות
עץ לא מכוון
עץ מכוון
עץ מכוון בעל שורש הוא גרף (מכוון) קשיר מ ובעל מסלולים ייחודיים.
- קשיר מ - יש מסלול מ לכל צומת .
- בעל מסלולים ייחודיים - לכל שני צמתים , יש לכל היותר מסלול אחד מ ל.
מספר משפטים
המשפט הבא הוא הרחבה של המשפט שאותו הוכחנו כרגע (תתבקש להוכיחו בשיעורי הבית).
עץ פורש
מכאן ועד סוף הדף נוכיח את המשפט החשוב הבא. (משפט זה ישמש אותנו, בין היתר באלגוריתם Kruskal ואלגוריתם Prim.)
כדי להוכיח את המשפט, נשתמש ב"פסוודו-קוד" הבא:
# Takes a connected undirected graph (G)
# Returns a set of edges E' such that (V(G), E') is a tree.
Grow-Tree(G)
1 V= V(G)
2 E' = {}
3 while (V, E') isn't a tree
4 e = some (u, v) where u, v are from different trees
5 E' = E' ∪ {e}
6 return E'
נסיים בהוכחת המשפט. נראה שה"פסוודו-קוד" אכן בונה עץ פורש.