omer1222 פורסם 2021 ביוני 10 Share פורסם 2021 ביוני 10 אהלן, חייב חייב עזרה אשמח שתעזרו לי שאלה בתור: כתוב פעולה המקבלת תור que ומחזירה תור חדש שהוא היפוך סדר האיברים של התור que עבור: que[1,2,3,4] יוחזר התור [4,3,2,1] ***ללא שימוש במבני נתונים נוספים, רמז רקורסיה*** כתוב תור חדש והסתבכתי עם זה מי שיכול לעזור לי עם היפוך לתור חדש והרקורסיה אודה לו מאוד!! בבקשה עזרה למתכונת הסתבכתי וכשאני רואה דרך אני מבין לפיה אנחנו משתמשים בhead, remove וכאלה כלומר בNode וQueue אשמח לעזרה דחוףמאוד ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
lharpaz פורסם 2021 ביוני 13 Share פורסם 2021 ביוני 13 הבעיה שלך היא ב- 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. תרגיל (בשביל לוודא שהבנת): האם חייבים תור חדש? או שאפשר לעשות את זה תוך שימוש בתור המקורי בלבד? ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
הצטרפ/י לדיון
בשלב זה תוכל/י להצטרף לדיון, ולאחר מכן להצטרף לקהילה שלנו. אם כבר יש לך חשבון אצלנו, אנא התחבר/י עכשיו על מנת להגיב תחת שם המשתמש שלך.
לתשומת לבך: התגובה תופיע לגולשים לאחר אישור של צוות הנהלת הפורומים.