קיבלתי עבודה לעשות ב C, הסוכן הנוסע. אך נתקלתי בבעיה שאני בערך יומים יושב ולא יודע איך לפתור. *הערה בכל התרגיל אסור להשתמש בלולאות -- אך ורק בפונקציות ורקורסיות, כמו כן מותר להתשתמש רק בספריית STDIO.H
הבעיה היא כזאת:
בסוכן נוסע, שבמסגרת תפקידו עליו לעבור בערים רבות, המקושרות ביניהן ברשת כבישים, יש למצוא את המסלול הקצר\זול ביותר (קצר במרחק\ זול במחיר) אשר מבקר בכל עיר פעם אחת בדיוק.
אני צריך שהתוכנה תקלוט מהמשתמש n נקודות ואת המרחקים בין כל אחד מהנקודות, ולאחר מכן תדפיס למסך את הסדר בו יש לעבור מנקודה לנקודה על מנת לנסוע כמה שפחות.
הבעיה שנתקלתי היא מה קורה אחרי שהסוכן ביצע את המסלול בפעם הראשונה. ומה היא כוונתי :
הסוכן נסע במסלול ההבא: (הקדמה ישנם4 ערים וכל הערים מקושרות בניהן . (בזאת מצורפת תמונה)
http://dl.dropbox.com/u/25505203/flow.JPG
עכשיו הבעיה: הצלחתי לבנות אלגוריתם שיבדוק לי בפעם הראשונה ויסכום לי את המרחקים, אך אני לא יודע כיצד להגיד לפונקציה לחזור אחורה ולבדוק האם הוא ביקר במסלול שונה או לא., וע"פ הנתון הזה שימשיך בשאר הבדיקה באלגוריתם.
לדוגמא הוא ביקר ב - 0-1-2-3, איך אני כותב שיחזור ל מיקום 1 ויבדוק האם קיים מסלול אחר שאותו הוא לא בדק .
תודה רבה לכל העוזרים