עזרה בjava בבקשה - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

עזרה בjava בבקשה


omer1222
 Share

Recommended Posts

אהלן, חייב חייב עזרה אשמח שתעזרו לי
שאלה בתור:
כתוב פעולה המקבלת תור que ומחזירה תור חדש שהוא היפוך סדר האיברים של התור que
עבור: que[1,2,3,4] יוחזר התור [4,3,2,1]
***ללא שימוש במבני נתונים נוספים, רמז רקורסיה***

כתוב תור חדש והסתבכתי עם זה מי שיכול לעזור לי עם היפוך לתור חדש והרקורסיה אודה לו מאוד!!smile.gif

בבקשה עזרה למתכונת הסתבכתי וכשאני רואה דרך אני מבין לפיה

 

 

אנחנו משתמשים בhead, remove וכאלה 

כלומר בNode וQueue אשמח לעזרה דחוףמאוד

קישור לתוכן
שתף באתרים אחרים

הבעיה שלך היא ב- syntax או ב"אלגוריתם"?

 

נסה משהו בכיוון הזה (זה פסאודו קוד, כמובן):

 

public Queue reverseQueue(Queue q) {
   Queue newQ = new ...
   reverseQueue(q, newQ)
   return newQ
}

// this is the recursive function
private void reverseQueue(Queue orig, Queue reversed) {
  if orig not empty {
    T element = q.remove() // first in queue
    reverseQueue(orig, reversed)
    reversed.add(element) // add to end of queue
  }
}

 

הערה: כתבת "ללא שימוש במבני נתונים נוספים, רמז רקורסיה", אבל במובן מסויים אנחנו משתמשים ב- call stack בתור מחסנית. זו כנראה סתם התחכמות, אבל כדאי שתבין מה זה ה- call stack.

 

תרגיל (בשביל לוודא שהבנת): האם חייבים תור חדש? או שאפשר לעשות את זה תוך שימוש בתור המקורי בלבד?

קישור לתוכן
שתף באתרים אחרים

הצטרפ/י לדיון

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

אורח
הוסף תגובה

×   התוכן שהודבק הוא עם עיצוב.   הסר עיצוב

  Only 75 emoji are allowed.

×   הקישור שלך הוטמע אוטומטית.   הצג כקישור רגיל

×   התוכן הקודם שלך שוחזר אוטומטית.   נקה הכל

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
  • צור חדש...