עבור לתוכן

שאלה על מחסניות

Featured Replies

פורסם

אני רוצה לאחסן 2 מחסניות במערך פיזי אחד, בתנאי: כל מחסנית תודיע שהיא מלאה רק כאשר סכום האיברים בשני המחסניות יהיה שווה לגודל המערך.

איך כותבים אלגוריתים לזה?

מעדיף ב-C++ או אפילו ברעיון, את השלבים והסבר.

תודה

פורסם

כל אחת מתחילה מקצה שני של המערך

זה די פשוט...

כשאתה דוחף איבר למחסנית אחת אתה צריך לבדוק שסכום הגדלים לא עולה על גודל המערך

למחסנית הראשונה אתה דחוף ל-sizeof_stack1 ולשניה אתה דוחף ל-total_size-sizeof_stack2

פורסם
  • מחבר

תוכל להסביר את המשפט האחרון במילים פשוטות יותר?

פורסם

כשאתה רוצה להכניס למחסנית הראשונה איבר אז אתה צריך לשים אותו בראש המחסנית

אם במחסנית הראשונה יש כבר n1 איברים אז את האיבר החדש אתה צריך לדחוף למקום ה-n1 במערך

במחסנית השניה אם יש n2 איברים אז אתה צריך לדחוף את האיבר החדשה במקום ה-n2 מהסוף. אם גודל המערך הוא N אז את האיבר תשים במקום ה-N-n2-1

פורסם
  • מחבר

האמת, עדיין לא הבנתי ב-100%, אתפוס ראש ואנסה להבין

שאלה נוספת: האם הצעתך היא בסיבוכיות של

0(n)?

פורסם

מה נראה לך?

פורסם
  • מחבר

אני חדש בתחום, רק קראתי על זה חומר כעת, והשעה מאוחרת, אני אפילו לא יודע מה זה סיבוכיות...

פורסם

אז מה הטעם לשאול שאלה שאתה לא מבין?

קודם תבין מה זה סיבוכיות ואז תבין באיזה סיבוכיות זה.

פורסם

נראה לי שיש פתרון פשוט יותר(ללא שמירה של גודל המחסנית).

אתה צריך לשמור את המיקום של האיבר החדש ביותר המחסנית. גם כאן אחת מהמחסניות תתחיל מהסוף.

(שני הפתרונות זהים לחלוטין חוץ מהעיקרון הבסיסי)

ואני ממליץ לך בחום לחזור על הגדרת המחסנית וכל מה שקשור. אם יש לך שאלות תשאל.

פורסם
  • מחבר

OK

הבנתי!

תודה

פורסם

תחתית אחת היא בסוף המערך(ואתה מתקדם להתחלה), ותחתית שניה היא בתחילת המערך(כך שאתה מתקדם לקראת הסוף).

פורסם

תבדוק תמיד שאתה לא בחריגה זה מאוד חשוב ומונע הרבה טעויות ובעיות

מנסיון

פורסם
  • מחבר
:xyxthumbs:

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים