שאלה 2 ו 3
3 posters
עמוד 1 מתוך 1
שאלה 2 ו 3
שלוםם לכולם!!!
קודם כל ברכות על הפורום החדש!!
יש לי שאלה למי שעשה את שאלות 2 ו 3.... הם פשוט לא יודעים לנסח שאלות
אוקי בשאלה 2.ב הם אומרים למז שתי רשימות לרשימה אחת.... האם אתם משנים את אחת הרשימות ואז מחזירים אותה..
ז"א נגיד LST1 =2,4 5
LST2= 1,3 6
אז משנים את המצביעים ב LST1 ל 1,2,3,4,5,6 ז"א ה"ראש" של הרשימה הראשונה נהיה בעצם הראש של הרשימה השניה וכו...
זה הפאקינג כוונה שלהם?
שאלה 3.ב נגיד יצרתי את הסכום של שני המספרים, עכשיו הם רוצים לקבל מצביעים לכל ספרה בעצם...
אז מה אתם עושים הקצאה דינאמית לספרות האלו ואז שולחים מספרים...
נגיד יש יצא לי סכום 158 אז אני יוצר ב "מאלוק" מערך של 3 איברים כביכול ואז שולח מצביעים???
יאלה חבר'ה תודה בכל אופן שיהיה חגגגג שמחחח
סופש מהנה!!!!!
קודם כל ברכות על הפורום החדש!!
יש לי שאלה למי שעשה את שאלות 2 ו 3.... הם פשוט לא יודעים לנסח שאלות
אוקי בשאלה 2.ב הם אומרים למז שתי רשימות לרשימה אחת.... האם אתם משנים את אחת הרשימות ואז מחזירים אותה..
ז"א נגיד LST1 =2,4 5
LST2= 1,3 6
אז משנים את המצביעים ב LST1 ל 1,2,3,4,5,6 ז"א ה"ראש" של הרשימה הראשונה נהיה בעצם הראש של הרשימה השניה וכו...
זה הפאקינג כוונה שלהם?
שאלה 3.ב נגיד יצרתי את הסכום של שני המספרים, עכשיו הם רוצים לקבל מצביעים לכל ספרה בעצם...
אז מה אתם עושים הקצאה דינאמית לספרות האלו ואז שולחים מספרים...
נגיד יש יצא לי סכום 158 אז אני יוצר ב "מאלוק" מערך של 3 איברים כביכול ואז שולח מצביעים???
יאלה חבר'ה תודה בכל אופן שיהיה חגגגג שמחחח
סופש מהנה!!!!!
ohad cohen- מתפקד בקושי
- מספר הודעות : 6
Join date : 10.04.09
לגביי שרלה 2.ב
ממה שאני הבנתי מההוראות, וזה גם מה שביצעתי בשטח - זה שמכיוון שהערך שהפונקציה מחזירה הוא מסוג LIST, חייבת להיות איזושהי הקצאה ראשונית בתוך הפונקציה למשתנה חדש מסוג LIST כאשר ה HEAD וה TAIL שלו מצביעים על כלום. ועכשיו מה שנותר לעשות בתוך הפונקציה זהה למה שאמרת בעצמך- הצבעה עם HEAD, של הרשימה החדשה, על הצומת (Node) שמכילה מספר הכי קטן. בשלב שלאחר מכן, שדה ה-NEXT שבצומת הנ"ל ייתעדכן (ובכך בעצם יפגום ברשימה המקורית שהוא מקושר אליה) ויצביע על הצומת הבאה שמכילה מספר יותר גדול, באחת משתי הרשימות.
כך הלאה עד אשר קושרו כל הצמתים שבשתי הרשימות הנתונות אל תוך הרשימה החדשה.
לבסוף תוחזר הרשימה החדשה.
חג אביב שמח!
כך הלאה עד אשר קושרו כל הצמתים שבשתי הרשימות הנתונות אל תוך הרשימה החדשה.
לבסוף תוחזר הרשימה החדשה.
חג אביב שמח!
שאלה 3ב'
אוהד, בקשר לשאלה שלך,
אמנם רק עכשיו התחלתי את השאלה הזו אבל לפי איך שאני מבין אותה, ברגע שקיבלת את הסכום של שתי הרשימות 158 לפי הדוגמא שלך, ה-head מצביע לספרה 8. אתה צריך להחזיר בעצם רק את המצביע ל-head.
הם לא רוצים מצביע לכל ספרה - אלא מצביע לסכום הסופי.
תהנו מהחופשה
אמנם רק עכשיו התחלתי את השאלה הזו אבל לפי איך שאני מבין אותה, ברגע שקיבלת את הסכום של שתי הרשימות 158 לפי הדוגמא שלך, ה-head מצביע לספרה 8. אתה צריך להחזיר בעצם רק את המצביע ל-head.
הם לא רוצים מצביע לכל ספרה - אלא מצביע לסכום הסופי.
תהנו מהחופשה
Xachi- מתפקד בקושי
- מספר הודעות : 6
Join date : 08.04.09
Re: שאלה 2 ו 3
אוהד ב-3.ב
אין מצב שבו אתה עושה הקצאה דינאמית למערך. כל הרעיון הוא שתמצא את הדרך המתמטית הנכונה לעבור על הספרות של n1 ועל הספרות של n2 (הספרות = הצמתים ברשימה) ולבצע עליהן פעולות, תוך כדי הקצאת צמתים חדשים לרשימת sum, כך שבסוף פעולת הפונקציה, יקושרו ב-sum כל הספרות הרלוונטיות שבאמת יבטאו את המכפלה של n1 ו-n2.
כשתקרא לפונקציה, תוודא שהמצביע List* sum מצביע על רשימה בזיכרון שה-head של וה-tail שלה מצביעים NULL.
מה שאומר שב-main שלך כבר תבצע הקצאה דינאמית למשתנה מסוג LIST או שלא בהקצאה דינאמית - זה לא משנה.
אין מצב שבו אתה עושה הקצאה דינאמית למערך. כל הרעיון הוא שתמצא את הדרך המתמטית הנכונה לעבור על הספרות של n1 ועל הספרות של n2 (הספרות = הצמתים ברשימה) ולבצע עליהן פעולות, תוך כדי הקצאת צמתים חדשים לרשימת sum, כך שבסוף פעולת הפונקציה, יקושרו ב-sum כל הספרות הרלוונטיות שבאמת יבטאו את המכפלה של n1 ו-n2.
כשתקרא לפונקציה, תוודא שהמצביע List* sum מצביע על רשימה בזיכרון שה-head של וה-tail שלה מצביעים NULL.
מה שאומר שב-main שלך כבר תבצע הקצאה דינאמית למשתנה מסוג LIST או שלא בהקצאה דינאמית - זה לא משנה.
האם כאשר
אתם יוצרים את הרשימה השלישית של הסכום או הכפל,
אתם גם משנים בדרך את הרשימות המקוריות או לא?
אתם גם משנים בדרך את הרשימות המקוריות או לא?
Xachi- מתפקד בקושי
- מספר הודעות : 6
Join date : 08.04.09
Re: שאלה 2 ו 3
סבבה אבל השאלה שלי היא מאיפה אתה יוצר את הכתובות של הספרות הללו שבתוך הרשימה SUM?
הרי ההגדרה של כל חוליה ברשימה היא מצביע ל int וכתובת next , אז המצביע ל int צריך להיות כתובת מסויימת שאני מכניס לחוליה...
איך אתה יוצר את הכתובת הזאת?
סתם דוגמא שתמחיש:
n1= 1 2
n2= 3 5
במקרה הזה יש לנו סה"כ 4 פוינטרים כי לכל מספר יש כתובת.....
נגיד עכשיו חישבת ויצא לך 21 +53 = 74 ז"א אתה צריך ליצור עכשיו רשימה חדשה עם שתי חוליות ושתי כתובות
החוליה הראשונה מצביע ל 4 והחוליה השניה מצביע ל 7 (כי לפי מה שהם רוצים זה הפוך סדר הספרות) אז מאיפה אתה מביא כתובות למספרים האלה???
הרי ההגדרה של כל חוליה ברשימה היא מצביע ל int וכתובת next , אז המצביע ל int צריך להיות כתובת מסויימת שאני מכניס לחוליה...
איך אתה יוצר את הכתובת הזאת?
סתם דוגמא שתמחיש:
n1= 1 2
n2= 3 5
במקרה הזה יש לנו סה"כ 4 פוינטרים כי לכל מספר יש כתובת.....
נגיד עכשיו חישבת ויצא לך 21 +53 = 74 ז"א אתה צריך ליצור עכשיו רשימה חדשה עם שתי חוליות ושתי כתובות
החוליה הראשונה מצביע ל 4 והחוליה השניה מצביע ל 7 (כי לפי מה שהם רוצים זה הפוך סדר הספרות) אז מאיפה אתה מביא כתובות למספרים האלה???
ohad cohen- מתפקד בקושי
- מספר הודעות : 6
Join date : 10.04.09
קודם כל אין צורך, ואני חושב אפילו שאסור לשנות את n1 ו-n2
ולשאלתך, מאיפה אתה מביא כתובות למספרים האלה, פשוט תיצור פונקציה שבוא נגיד, מקבלת מספר int.
והערך שהיא מחזירה הוא ListNode*
כלומר - מחזירה כתובת של צומת (חולייה) חדשה שבה הפויינטר dataPtr מצביע על int שבו הכנסת את המספר.
כלומר בפונקציה הזאת תבצע ראשית הקצאה לחולייה חדשה:
malloc (sizeof(ListNode)) and i just add some words to make the english code looking right
ואז תבצע הקצאה בזיכרון למקום של Int חדש:
malloc (sizeof(int)) and agian bla bla bla just for the left to right writing appearance
כעת נותר לך לוודא שהפוינטר dataPtr שבחולייה החדשה שיצרת יצביע על הint החדש הזה, וכמובן שעלייך לשים את המספר שקיבלת כקלט בתוך ה int הנ"ל. אני ממליץ גם לשים NULL בפוינטר next של החולייה החדשה לצורך מודולריות ולהמנע משגיאות.
ולבסוף הפונקציה שלך תחזיר את הכתובת של החולייה החדשה.
כך תוכל לבנות לך בנוחות את sum (וגם את prod), ע"י קריאה לפונקציה הזאת ליצירת צומת חדשה עם המספר הנחוץ, וצירוף הצומת הזאת לרשימת הפלט שלך sum (או prod)...
מקווה שעזרתי
והערך שהיא מחזירה הוא ListNode*
כלומר - מחזירה כתובת של צומת (חולייה) חדשה שבה הפויינטר dataPtr מצביע על int שבו הכנסת את המספר.
כלומר בפונקציה הזאת תבצע ראשית הקצאה לחולייה חדשה:
malloc (sizeof(ListNode)) and i just add some words to make the english code looking right
ואז תבצע הקצאה בזיכרון למקום של Int חדש:
malloc (sizeof(int)) and agian bla bla bla just for the left to right writing appearance
כעת נותר לך לוודא שהפוינטר dataPtr שבחולייה החדשה שיצרת יצביע על הint החדש הזה, וכמובן שעלייך לשים את המספר שקיבלת כקלט בתוך ה int הנ"ל. אני ממליץ גם לשים NULL בפוינטר next של החולייה החדשה לצורך מודולריות ולהמנע משגיאות.
ולבסוף הפונקציה שלך תחזיר את הכתובת של החולייה החדשה.
כך תוכל לבנות לך בנוחות את sum (וגם את prod), ע"י קריאה לפונקציה הזאת ליצירת צומת חדשה עם המספר הנחוץ, וצירוף הצומת הזאת לרשימת הפלט שלך sum (או prod)...
מקווה שעזרתי
עמוד 1 מתוך 1
Permissions in this forum:
אתה לא יכול להגיב לנושאים בפורום זה