נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: חוליות

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
Raigki
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 08 December 2010
משתמש: מנותק/ת
הודעות: 7
נשלח בתאריך: 01 January 2011 בשעה 18:17 | IP רשוּם
ציטוט Raigki

קיבלתי את המשימה הבאה:

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

דוגמא:
הפרמטרים של הפעולה:
chain1=1,2,7
chain2=4,6,8
הפעולה תחזיר:
chain3=1,2,4,6,7,8

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

תודה.
חזרה לתחילת העמוד הצג את כרטיס החבר של Raigki חפש הודעות אחרות של Raigki
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 01 January 2011 בשעה 21:13 | IP רשוּם
ציטוט shoshan

עוד עוד נשארו איברים בשתי הרשימות:
  כל על עוד האיבר בשרשרת הראשונה קטן מזה שבשנייה מכניס לשרשרת חדשה איבה מהראשונה
  כל על עוד האיבר בשרשרת השנייה קטן מזה שבראשונה מכניס לשרשרת חדשה איבה מהשנייה
כל עוד נשארו איברים בשרשרת הראשונה מוסיף אותם לחדשה
כל עוד נשארו איברים בשרשרת השנייה מוסיף אותם לחדשה


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
Raigki
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 08 December 2010
משתמש: מנותק/ת
הודעות: 7
נשלח בתאריך: 02 January 2011 בשעה 19:34 | IP רשוּם
ציטוט Raigki

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

תודה.

public static Node<Integer> merge(Node<Integer> chain1,Node<Integer> chain2)
    {
        Node<Integer> chain3=new Node<Integer>(-100);
        Node<Integer> pos=chain3;
       
        while(chain1!=null&&chain2!=null)
        {
            while(chain1!=null&&chain1.getInfo()<chain2.getInfo())
            {
                pos.setNext(new Node<Integer>(chain1.getInfo()));
                pos=pos.getNext();
                chain1=chain1.getNext();
            }
           
            while(chain2!=null&&chain2.getInfo()<chain1.getInfo())
            {
                pos.setNext(new Node<Integer>(chain2.getInfo()));
                pos=pos.getNext();
                chain2=chain2.getNext();
            }
        }
        while(chain1!=null)
        {
            pos.setNext(new Node<Integer>(chain1.getInfo()));
            pos=pos.getNext();
            chain1=chain1.getNext();
        }
       
        while(chain2!=null)
        {
            pos.setNext(new Node<Integer>(chain1.getInfo()));
            pos=pos.getNext();
            chain2=chain2.getNext();
        }
        return chain3.getNext();
    }
חזרה לתחילת העמוד הצג את כרטיס החבר של Raigki חפש הודעות אחרות של Raigki
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 02 January 2011 בשעה 22:12 | IP רשוּם
ציטוט shoshan

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

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


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
Raigki
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 08 December 2010
משתמש: מנותק/ת
הודעות: 7
נשלח בתאריך: 03 January 2011 בשעה 16:30 | IP רשוּם
ציטוט Raigki

אוקיי,תודה על העזרה הפעולה עובדת.

נתבקשתי לבצע עוד משימה:

לבנות פעולה שתקבל שרשרת לא ממוינת ושתבצע מיון שרשרת חוליות מסוג Integer בסדר עולה,למשל:

chain נראית כך לפני הפעולה:
chain-2,6,4,1,9,0
ואחרי הפעולה כך:
chain-0,1,2,4,6,9

לפי דרך המחשבה שלי,יש לבצע לולאת WHILE שתרוץ על מיקום מסויים (pos למשל) כל עוד פוז שונה מNULL ובפנים לולאה נוספת שתרוץ על החולייה שאחרי פוז (pos2 למשל) כל עוד פוז2 שונה מNULL ופוז2 גדול מפוז.
אם הגעתי למצב שפוז2 קטן מפוז אז יש לבצע החלפה,בקטע הזה נתקעתי,אני לא מצליח ליישם את דרך החשיבה שלי ואני מאבד קשר עם החוליות.

איך קטע הקוד צריך להיראות?
חזרה לתחילת העמוד הצג את כרטיס החבר של Raigki חפש הודעות אחרות של Raigki
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

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