פורסם 2014 ביוני 2411 שנים הי,אני מנסה לממש מיון בחירה ברשימה מקושרת , חד-כיוונית .אני מסתבך עם המצביעים .. ניסיתי לחפש בגוגל מימוש , אבל משום מה אין ..טיפים ? עצות ? קישור ?תודה !- - - תגובה אוחדה: - - -נ.ב-מדובר ברשימה מקושרת של Integrs . נערך 2014 ביוני 2411 שנים על-ידי Second Edition
פורסם 2014 ביוני 2411 שנים אתה יכול להשתמש בפונ' ההסרה/הוספה שאני מניח שכבר מימשת.פשוט תשמור מצביע לאיבר האחרון ש"סיימת איתו". בכל איטרציה תסיר את האיבר המינימלי שנמצא אחרי המצביע, ותוסיף אותו מחדש אחרי המצביע (ואז תעשה אותו למצביע).(אפשר לממש את ההסרה ב-O(1). כמובן שגם את ההוספה.)
פורסם 2014 ביוני 2411 שנים מחבר נראה לי שהצלחתי , אולי נשארו מעט שינויים ..השתמשתי בשמונה מצביעים :percurrbeforelargestlargestthis._headtempfirst ועוד אחד ..
פורסם 2014 ביוני 2511 שנים מחבר הנה מה שרשמתי ..זה ממש לא אלגנטי , ונראה לי שיש לפחות שתי טעויות כאן . אני אמשיך עם זה יותר מאוחר .אם יש למישהו רעיון יותר אלגנטי ..[LEFT]public class IntList { private IntNode _head; public IntList () { _head=null; } public IntList (IntNode node) { _head = node; } public IntList selectionSort () { IntNode curr , per , blargest , largest , bfirst , first , temp ; blargest=null; bfirst=null; largest=this._head; first = largest ; per = first ; curr = this._head.getNext(); boolean flag = true ; while (first.getNext() != null) { boolean foundlarger = false; while (curr != null) { if(curr.getValue() > largest.getValue()) { foundlarger=true; blargest = per; largest = curr; } per=curr; curr=curr.getNext(); }//Inner while. if(foundlarger == true) { temp = largest.getNext(); largest.setNext(first); blargest.setNext(temp); if(flag == true) { flag=false; this._head = largest; bfirst=this._head; } else { bfirst.setNext(largest); bfirst=bfirst.getNext(); } } per=first; curr=first.getNext(); largest=first; first=first.getNext(); }//While loop return this; }//End of selectionSort.[/LEFT]- - - תגובה אוחדה: - - -עבר להפתעתי הרבה קומפיילר .. נערך 2014 ביוני 2511 שנים על-ידי Second Edition
פורסם 2014 ביוני 2511 שנים מבלי להתעמק במימוש שלך, יהיה הרבה יותר אלגנטי ונוח להשתמש בפונקציית עזר שתחזיר מצביע לאיבר המינימלי
פורסם 2014 ביוני 2511 שנים מחבר אני עובר על חלק מהמבחנים הישנים ..כך שלפתרון השאלה הספציפית , לא נראה לי , שאפשר להשתמש במה שאתה מתכוון אליו ..אבל להרחבת אופקים , לאיזה פונקציה אתה מתכוון ?
פורסם 2014 ביוני 2511 שנים תכתוב פונקציה getMin שמקבלת מצביע לראש הרשימה המקושרת ומחזירה מצביע לאיבר המינימלי.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.