שאלונת

shaikema

New member
שאלונת

יש לך רשימה מקושרת בעלת גודל לא ידוע - המכילה item מסוג void* . הרשימה יכולה להסתיים ב-NULL או שהיא ציקלית . איך אני יודע האם היא סופית או לא ???
 

nahsh

New member
די פשוט האמת:

אתה שומר מצביע על האיבר הראשון, ומתחיל "לטייל" עם מצביע אחר, עד שאתה מגלה ששני המצביעים שווים, או שהמצביע שווה NULL. for(p=head,q=p->next; q!=NUUL && q!=p; q=q->next); if (q=NULL) return true; return false;
 

shaikema

New member
הבהרה

הרשימה יכולה להיות ציקלית לאו דווקא לאיבר הראשון , גם לאמצע . אבל אתה בכיוון !!
 

nahsh

New member
שאלו את זה פעם בפורום הישן של יואל

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