//roniki04@gmail.com //ronylevy
תיאור פונקציות: Graph Graph::operator+(const Graph& other) const מטרה: חיבור בין שני גרפים. התנהגות: מוסיף את האלמנטים המתאימים במטריצות הסמיכויות של שני הגרפים. הגרפים חייבים להיות באותו גודל. חריגות: זורק std::invalid_argument אם הגדלים לא תואמים.
Graph& Graph::operator+=(const Graph& other) מטרה: חיבור גרף אחר לגרף הנוכחי. התנהגות: משתמש באופרטור + כדי להוסיף את הגרף האחר לגרף הנוכחי ומעדכן את הגרף הנוכחי. חריגות: זורק std::invalid_argument אם הגדלים לא תואמים.
Graph Graph::operator+() const מטרה: החזרת עותק של הגרף.
Graph& Graph::operator++() מטרה: עובר על כל האלמנטים במטריצה השונים מ0 (בעצם כל מה שלא באלכסון) ומעדכן אותם ב1. החזרה: הגרף המעודכן.
Graph Graph::operator++(int) מטרה: עובר על כל האלמנטים במטריצה השונים מ0 (בעצם כל מה שלא באלכסון) ומעדכנת אותם ב1. התנהגות: מחזיר את הגרף המקורי לפני ההוספה.
Graph Graph::operator-(const Graph& other) const מטרה: חיסור בין שני גרפים. התנהגות: מחסר את האלמנטים המתאימים במטריצות הסמיכויות של שני הגרפים. הגרפים חייבים להיות באותו גודל. חריגות: זורק std::invalid_argument אם הגדלים לא תואמים.
Graph& Graph::operator-=(const Graph& other) מטרה: חיסור גרף אחר מהגרף הנוכחי. התנהגות: משתמש באופרטור - כדי לחסר את הגרף האחר מהגרף הנוכחי ומעדכן את הגרף הנוכחי. חריגות: זורק std::invalid_argument אם הגדלים לא תואמים.
Graph Graph::operator-() const מטרה: עוברת על כל המטריצה ומעדכנת את הסימן להיות - (מינוס)
Graph& Graph::operator--() מטרה: עוברת על כל הערכים במטריצה ומורידה אותם ב1 (חוץ מהערכים שהם לכתחילה 0 ז"א אלכסון). החזרה: הגרף המעודכן.
Graph Graph::operator--(int) מטרה: עוברת על כל הערכים במטריצה ומורידה אותם ב1. התנהגות: מחזיר את הגרף המקורי לפני ההחסרה.
bool Graph::operator<(const Graph& other) const מטרה: השוואה אם הגרף הנוכחי קטן מגרף אחר. התנהגות: בודק אם הגרף הנוכחי מוכל בגרף האחר. אם אף גרף לא מוכל בשני והגרפים לא שווים, אז בודק אם מספר הצלעות בגרף הנוכחי קטן ממספר הצלעות בגרף האחר. אם מספר הצלעות זהה, בודק אם סדר הגודל של מטריצת הסמיכויות של הגרף הנוכחי קטן משל האחר. (לפי ההגדרה שנינתנה לאופרטור קטן)
bool Graph::operator<=(const Graph& other) const מטרה: בדיקה אם הגרף הנוכחי קטן או שווה לגרף אחר. התנהגות: משתמש באופרטורים < ו- == כדי לבצע את הבדיקה.
bool Graph::operator>(const Graph& other) const מטרה: בדיקה אם הגרף הנוכחי גדול מגרף אחר. התנהגות: משתמש באופרטור > כדי לבצע את הבדיקה.
bool Graph::operator>=(const Graph& other) const מטרה: בדיקה אם הגרף הנוכחי גדול או שווה לגרף אחר. התנהגות: משתמש באופרטורים < ו- == כדי לבצע את הבדיקה.
bool Graph::operator==(const Graph& other) const מטרה: בדיקה אם שני הגרפים שווים. התנהגות: משתמש באופרטורים < ו- > כדי לבצע את הבדיקה. (לפי ההגדרה שניתנה)
bool Graph::operator!=(const Graph& other) const מטרה: בדיקה אם שני הגרפים לא שווים. התנהגות: משתמש באופרטור == כדי לבצע את הבדיקה.
Graph Graph::operator*(double num) const מטרה: כפל כל אלמנט במטריצת הסמיכויות בערך סקלרי.
Graph Graph::operator*(const Graph& other) const מטרה: כפל מטריצות הסמיכויות של שני גרפים. התנהגות: מספר העמודות במטריצה של הגרף הראשון חייב להיות שווה למספר השורות במטריצה של הגרף השני. חריגות: זורק std::invalid_argument אם הגדלים לא תואמים לכפל.
Graph& Graph::operator*=(const Graph& other) מטרה: כפל הגרף הנוכחי בגרף אחר. התנהגות: משתמש באופרטור * כדי לכפול את הגרף הנוכחי בגרף האחר ומעדכן את הגרף הנוכחי.
Graph& Graph::operator*=(double num) מטרה: להכפיל כל אלמנט במטריצת הסמיכויות בערך סקלרי. התנהגות: מעדכן את הגרף הנוכחי.
Graph& Graph::operator/=(double num) מטרה: חילוק כל אלמנט במטריצת הסמיכויות בערך סקלרי. חריגות: זורק std::invalid_argument אם num שווה לאפס.
bool isContain(const Graph& other, const Graph& g) מטרה: בודקת האם גרף other מוכל בגרף g כתת-מטריצה.
int Graph::numOfEdgs() const מטרה: ספירת מספר הצלעות בגרף. התנהגות: אם הגרף סימטרי, סופר כל צלע פעם אחת בלבד.