ABA


"עזרה בכתיבת אלגוריתם מילולי - עיצוב תוכנה..."
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #11708 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 11708
X-Crew

   17:00   18.01.05   
אל הפורום  
  עזרה בכתיבת אלגוריתם מילולי - עיצוב תוכנה...  
 
   הפוך_רשימה(L)
{השגרה מקבלת כפרמטר רשימה L המכילה שלמים ומחזירה את אותה רשימה כך שהתהפכו בה סדר איבריה.
הנחה:הרשימה L מאותחלת}
* אין להשתמש ברשימת עזר במהלך הפתרון

דרכים לפתרון:
א. נחזיק שני מצביעים הראשון P שינוע בכיוון מתחילת הרשימה לסופה ומצביע Q שינוע בכיוון מסוף הרשימה לתחילתה.
נקדם שני מצביעים אלה בהתאמה N DIV 2 פעמיים (מ-אורך הרשימה)
ובכל שלב נאחזר את הערכים ש- P ו- Q מצביעים עליהם(עי' אחזר_מרשימה)
ונחליף ביניהם עי' השגרה עדכן_רשימה.

ב. נחזיק שני מצביעים האחד Q שישמור לנו את האיבר האחרון ברשימה ומצביע שני P "שיטייל" לכיוון תחילת הרשימה.
בתחילה P מצביע על המקום של Q.
כל עוד P<>מכתובת העוגן, כלומר מ- L נבצע את המהלכים הבאים:
1. נזיז את P תא אחד אחורה באמצעות קודם_ברשימה.
2. נאחזר את הערך ש- P מצביע עליו לתוך X.
3. נכניס ערך זה אחרי Q, באמצעות הכנס_לרשימה(L,Q,X)
4. נקדם את Q ב- 1.
5. נוציא מרשימה את זה ש- P מצביע עליו, הוצא_מרשימה, ובעקבות זה P יתקדם תא אחד קדימה.

אני מתקשה לרשום שני אלגוריתמים לפתרון הבעיה..
אני צריך לתרגם את שני הדרכים הללו לאלגוריתמים מילוליים...
תודה לעוזרים...
והמשך יום טוב...


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net