פורסם 2014 ביוני 811 שנים היום נשאלתי בראיון עבודה בjava לעשות רשימה מקושרת בלי שימוש בcollectionהייתי רוצה לקבל הצעות איך אתם הייתם מממשים את המחלקה הזאת ?אני עשיתי את זה אם array רגיל, שאני מגדיר לו את הsize והtype של המערך הזה עשיתי אותו כאובייקט מסוג person למשלמה דעתכם?פתאום הבנתי שיש הרבה מקומות שבודקים לוגיקה שלי, אז אני צריך לדעת לממש הרבה דברים שjava או c# מוכניםהאם זה הדרך היחידה שעושים רשימה מקושרת בלי collections? או שיש עוד דרכיםאשמח אם יהיה פה הצעות לפיתרון...
פורסם 2014 ביוני 811 שנים ברשימה מקושרת לא משתמשים במערך, זה סותר את כל הפואנטה שלה. אתה מוזמן לקרוא את ההסבר בויקיפדיה:http://he.wikipedia.org/wiki/%D7%A8%D7%A9%D7%99%D7%9E%D7%94_%D7%9E%D7%A7%D7%95%D7%A9%D7%A8%D7%AAמדובר בחומר בסיסי של מדעי המחשב (משהו שלומדים בתיכון). נערך 2014 ביוני 811 שנים על-ידי שניצל
פורסם 2014 ביוני 811 שנים מחבר יואב אני יודע איך רשימה מקושרת עובדת, אני רק לא יודע איך מממשים את זה בלי listאתה מתכוון שעושים struct? ולמה המרצה שלי פעם עשה את זה בarray רגיל, פשוט אמר לתת למערך גודל גדול..
פורסם 2014 ביוני 811 שנים אם אתה לא יודע איך מממשים רשימה מקושרת בלי list, אז אתה לא יודע איך היא עובדת. שים לב שבויקיפדיה הדוגמה לא משתמשית באובייקט list שמספקת שפת התכנות. אם המרצה שלך השתמש במערך אז הוא לא עשה רשימה מקושרת.אם אתה רוצה דוגמה ב-#C אז חפש C# linked list implementation בגוגל.
פורסם 2014 ביוני 811 שנים שים לב שבמימוש עם מערך, הפעולה 'מחיקה' של חוליה מהאמצע מתבצעת בסיבוכיות זמן ריצה לינארית. ה-ADT רשימה מקושרת דורש את זה בזמן קבוע.
פורסם 2014 ביוני 811 שנים מחבר אני זוכר שבהנדסאים היינו מממשים רשימה מקושרת בעזרת struct , זה אותו מימוש בסי שארפ או ג'אווה? גם להשתמש בסטרק? - - - תגובה אוחדה: - - - שים לב שבמימוש עם מערך, הפעולה 'מחיקה' של חוליה מהאמצע מתבצעת בסיבוכיות זמן ריצה לינארית. ה-ADT רשימה מקושרת דורש את זה בזמן קבוע. אני אשמח אם תסביר לי מה בדיוק רשמת לי פה סיבוכיות אני מכיר אבל אני לא יודע מה קשור לעובדה שמימשתי את זה במערך, אני לא מדבר על סיבוכיות פה אני מדבר על העובדה שלפי מה שהמרצה שלי עשה הוא לא מימש רשימה מקושרת, אלא מערך שהוא בדמוי רשימה מקושרת, ומה זה ADT?
פורסם 2014 ביוני 811 שנים ADT = Abstract Data Type.רשימה מקושרת זה מבנה נתונים אבסטרקטי. הוא מגדיר מה זה בעצם רשימה מקושרת - מבנה נתונים עם גודל לא מוגבל מראש, שמאפשר שליפה איבר, דחיפת איבר, הצצה לאיבר, מעבר לאיבר הבא.גם מוגדר מה הסיבוכיות של כל פעולה כזאת. דחיפת איבר מההתחלה חייבת להיות ב-(1)O. אם לא, זו לא רשימה מקושרת.המימוש לא מוגדר. אתה יכול לממש רשימה מקושרת איך שאתה רוצה, כל עוד הוא עומד בתנאים להיקרא רשימה מקושרת.
פורסם 2014 ביוני 811 שנים מחבר הבנתי, בעיקרון אז אני יכול לממש את זה בstruct כמו בשפת סי , רק שאני יכול גם לערבב עם זה אובייקטים בתוך הnodeנכון?ומה ההבדל בין class ל struct? זה יוצא אותו דבר? זאת אומרת ראיתי אנשים שמממשים את זה ויוצרים את הצומת באמצעות class וראיתי כאלה שבחרו לממש את הצומת באמצעות structמה עדיף , ובעצם מה יותר נכון?
פורסם 2014 ביוני 811 שנים ב-java אין struct.ב-C יש רק struct, ב-++C זה כמעט אותו דבר - struct זה class רק שהכל בברירת מחדל (אם לא ציינת במפורש) public לעומת private ב-class.
פורסם 2014 ביוני 811 שנים ב-#C יש הבדל משמעותי בין struct ו-class (בניגוד ל-++C, שם ההבדל הוא רק בנראות ברירת המחדל).struct ב-#C הוא value type, כמו הטיפוסים הפרימיטיביים (int, bool וכו'). זה אומר כמה דברים:א. הוא לא יכול להיות null, בניגוד ל-class.ב. כשאתה מבצע השמה, אז זה מעתיק את התוכן של האובייקט, ולא רק את המצביע - כמו ב-++C.בקיצור - אל תשתמש ב-struct ב-#C, אלא רק ב-class.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.