מחיקת איבר ברשימה מקושרת ב Java - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

מחיקת איבר ברשימה מקושרת ב Java


Da-Funk

Recommended Posts

שלום .. רציתי לדעת איך אני מוחק איבר ברשימה מקושרת ב Java עם שמירה על הפרדת רשויות.. כאשר גיליתי שאני צריך למחוק את האיבר באובייקט הפנימי עצמו...

איך אני מבפנים מודיע לרשימה ש"אני האובייקט" אמור להמחק ? :\ הרי בתור אובייקט לא אמור להיות לי מושג שאני ברשימה ...

תודה מראש לעוזרים.. ואם זה לא הכי מובן אני אתן ציור...

קישור לתוכן
שתף באתרים אחרים

כן אני יודע .. ולא למדנו איטרטור אז אני לא רוצה להכניס את זה ... אז זאת הדרך המכוערת היחידה ? אין פחות מכוערת ?

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

זה נראה ככה...

ספר טלפונים

V

רשימה

V

אלמנטים

V

אובייקט (שמחקתי לו את כל המספרי טלפון הדרישה שהכניסה שלו ברשימה תמחק)

מקווה שזה יותר מובן :>

קישור לתוכן
שתף באתרים אחרים

תיצור ראש מדומה וזנב מדומה(ללא תוכן רק מצביעים לאיבר הבא) ברשימה, ותעבוד ע"פ ההנחה הזו.

כשאתה רוצה למחוק איבר מסויים, תעביר את המידע שבאיבר שאחריו אליו, ואז תמחוק את האיבר שאחריו.

אם זה שאחריו הוא ריק, אז אסור לך למחוק אותו(מכיוון שהוא או אחרון ברשימה או שהוא איבר בודד שלא ברשימה).

קישור לתוכן
שתף באתרים אחרים

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

והוא צריך להודיע ל List להעיף אותו.... איך אני עושה את זה.. מצורפת תמונה

הערה: החץ האדום הוא המקום שבו אני מגלה שהאובייקט צריך להמחק....

החצים הם חד כיווניים לימן או למטה

[attachment deleted by admin]

קישור לתוכן
שתף באתרים אחרים

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

אם תתייחס לרשימה מתוך האיבר, זה אומר שהאיבר מכיר את הרשימה.

אם אתה רוצה להתפרע, אתה יכול להעביר לאיבר (ב- constructor שלו למשל) interface של container שדרכו הוא יכול להודיע שהוא צריך להימחק, אבל זה אומר שכל איבר יכול להיות רק בתוך container אחד.

קישור לתוכן
שתף באתרים אחרים

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

אם תתייחס לרשימה מתוך האיבר, זה אומר שהאיבר מכיר את הרשימה.

אם אתה רוצה להתפרע, אתה יכול להעביר לאיבר (ב- constructor שלו למשל) interface של container שדרכו הוא יכול להודיע שהוא צריך להימחק, אבל זה אומר שכל איבר יכול להיות רק בתוך container אחד.

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

המתודה למחוק מספרי טלפון היא באובייקט עצמו כמובן (שהוא שומר את הנתונים על כל אדם ואדם ואחד השירותים שלו זה למחוק מס' טלפון)

עכשיו אחרי שמחקתי את כל המספרים אני צריך לדווח לרשימה שהאיבר הזה לא נחוץ יותר. איך אני מחזיר לרשימה את הרפרנס שלו למחיקה באלגנטיות בלי לפגוע יותר מדי ב information hiding . זאת השאלה. החצים חד כיווניים הווה אומר כל אובייקט לא מכיר את מי שמצביע עליו. בטוח שיש דרך מתוחכמת לזה אני פשוט לא חכם מספיק :(

קישור לתוכן
שתף באתרים אחרים

נראה לי שאמור להיות לך מקום מתוך ספר הטלפונים שבו קורא לפונקציה על הרשומה של האדם (שמוחקת את המספר טלפון או מה שזה לא יהיה).

אחרי הקריאה הזו, אתה יכול לשאול את הרשומה אם היא ריקה, ואם כן אז למחוק אותה.

קישור לתוכן
שתף באתרים אחרים

נראה לי שאמור להיות לך מקום מתוך ספר הטלפונים שבו קורא לפונקציה על הרשומה של האדם (שמוחקת את המספר טלפון או מה שזה לא יהיה).

אחרי הקריאה הזו, אתה יכול לשאול את הרשומה אם היא ריקה, ואם כן אז למחוק אותה.

:yelclap: אחלה רעיון! עובד... תודה לכולם

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...