א) באיזה מבנה נתונים הכי טוב להשתמש על מנת לייצג מפה של רחובות, כאשר ידוע לי שאני רוצה להגיע מרחוב X לרחוב Y, אבל אני רוצה שהמחשב ימצא את כל המסלולים האפשריים. ב) איך ממשים מחסנית עם תורים בלבד? אשמח ליעוץ.
אתה צריך שני תורים: תור א' תור ב' הפעולות הן: הכנסה והוצאה. הכנסה: הוסף את האיבר לתור א'. הוצאה: קרא את כל האיברים מתור א' והעבר אותם לתור ב', מלבד האחרון, שאותו תוציא לפלט. החלף תפקידים כעת בין תור א' ותור ב'.
כנראה שעוד לא למדנו את זה. רק התחיל הקורס. נתון לי מפה של רחובות ורוצים שארשום את כל המסלולים האפשריים מ-A ל-B במפה הספציפית שנתונה. לפי המפה, יש לי 3 דרכים: AB ADB ACB בסך הכל שלושה מסלולים. נתתי פתרון עם רשימה מקושרת פשוטה שמתחילה מ-A וכל רחוב שמחובר עם A יהיה פוינטר אליו ככה שלבסוף יבנה (דמיונית) מעין עץ.
האם עדיף לבצע העתקה של נתוני הרשימה למערך ואז לבצע את המיון או פשוט למיין רשימה עצמה? נניח ויש לי רשימה מקושרת עם N נתונים. מבקשים ממני להוציא מתוך הרשימה את 3 הנתונים בעלי המספרים הכי גבוהים. מה הדרך הכי טובה לעשות זאת?
אני מחפש מבנה נתונים מאלה שאני מכיר (רשימה מקושרת, מערך, מחסנית, תור) למימוש. נתון לי אוסף של מספרים ממשיים שונים זה מזה. יש להציע מבנה נתונים שמאפשר את הפעולות הבאות בזמן קבוע (שאינו תלוי בגודל האוסף): א. הוספת מספר ממשי. ב. הוצאת מספר ממשי אחרון שהוכנס לאוסף. ג. החזרת שני איברים הכי קטנים באוסף (ללא הוצאתם). ד. הוספת מספר k לכל המספרים באוסף.
איך אתה מחזיר את 2 האיברים הכי גדולים או הכי קטנים. האוסף הוא נתון, נניח במערך או ברשימה מקושרת. בכל מקרה יהיה צורך לעבור על כל האוסף כדי למצוא את ההכי גדולים או קטנים.
מנוסח שכתבת אני לא הבנתי את זה. מדובר בקורס מבני נתונים, נכון? זאת שאלה די סטנדרטית, אתה צריך להמציא מבנה נתונים על בסיס מבנים ידועים, עם סיבוכיות מוגדרת. האוסף לא נתון לך. אלא אם כן, העתקת את נוסח השאלה לא נכון