פורסם 2010 ביוני 615 שנים היי חברים,אני צריך עזרה במימוש פונקציה המקבלת מצביע לראש רשימה מקושרת המורכבת ממבנים אלו ומדפיסה את איברי הרשימה.זה המבנה:typedef struct item{ int data; struct item* next;} sItem;זאת כותרת הפונקציה:void print_list(sItem* head)אני מאמין שאם אראה את הקוד של הפונקציה הזאת, אוכל להבין מכך את הסינטקסט ואז להבין גם איך לכתוב את המשך התכנית.תודה רבה חברים!
פורסם 2010 ביוני 615 שנים הפונקציה שלך צריכה להשתמש בלולאה, שצריכה לבצע שני דברים:1. להדפיס את האיבר הנוכחי ברשימה.2. לעבור לאיבר הבא ברשימה.תחשוב איך מממשים את זה, ומה תנאי העצירה. אם אתה לא יודע, אז תחזור על החומר של רשימות מקושרות, כי זה פחות או יותר הדבר הכי בסיסי.
פורסם 2010 ביוני 615 שנים מחבר אוקי, כתבתי את הפונקציה הבאה:void print_list(sItem* head){ while (head!=NULL) { printf("%d\n",head->data); head=head->next; }}מה שאני לא מבין זה איך אני עושה שהשדה next יצביע על האיבר הבא ברשימה המקושרת.כלומר נניח שיש לי רשימה מקושרת עם 5 איברים, איך השדה next יודע כל פעם להצביע לאיבר הבא ברשימה ואם אין איבר שם אז הוא יכיל NULL?לא מצאתי מידע על אתחול רשימה מקושרת או שאני לגמרי לא מבין את הרעיון של רשימה מקושרת והשדה next מקבל את הערכים בעת הגדרת הרשימה?
פורסם 2010 ביוני 615 שנים נראה לי שאתה לא מבין עד הסוף את איך בנויה רשימה מקושרת.הרשימה במקרה שלך מורכבת מ-5 איברים שכל אחד מהם כולל שדה next משלו והשדה הזה מצביע לאיבר הבא.תחשוב על זה כמו קרונות של רכבת, כל קרון מחובר לזה שאחריו בלבד ולא יודע בכלל שקיימים קרונות אחרים.במקרה שלך הפונציה מקבלת מצביע לראש הרשימה וכך היא יודעת מאיפה להתחיל.ברגע שאתה מצביע על איבר כלשהו (נניח ראש הרשימה) נתון לך השדה next הספציפי של האיבר הזה, כלומר מצביע לאיבר הבא.ברגע שאתה מגיע לאיבר האחרון השדה next שלו כבר מראש מצביע על NULL כך שברגע שאתה נתקל ב-NULL אתה יודע שצריך להפסיק.
פורסם 2010 ביוני 615 שנים מחבר את התאוריה אני מבין, כל מצגת הקורס מלאה בהסברים תאורטיים בלבד.השאלה שלי היא: איך השדה next יודע להצביע על האיבר/הקרון/וכו' הבא אם אני לא הגדרתי לו אל מי להצביע?ראיתי שאם אני מבין את זה אז כל הרשימות המקושרות נהיה לי ברור מאוד.תודה רבה חברים!
פורסם 2010 ביוני 615 שנים בבירור הוא לא יכול לדעת בלי שהגדרת את זה. בשביל זה יוצרים פונקציות insert ו-delete שמוסיפות ומוחקות איברים מהרשימה.
פורסם 2010 ביוני 615 שנים מן הסתם הוא לא ידע לאן להצביע ללא שתאמר לו, זו בסה"כ מכונה...התרגיל שלך היה ליצור פונקצייה שמדפיסה איברי רשימה כלשהי, בהנחה שהקלט של הפונקציה הוא רשימה מקושרת שהוגדרה כבר במקום אחר.אם אתה רוצה לבדוק את הפונקצייה שלך, כמובן שאתה צריך ליצור רשימה מקושרת בעזרת פונקצייה אחרת ולכתוב קוד שמשתמש בשתי הפונקציות.
פורסם 2010 ביוני 715 שנים יכול להיות שבנייה של הפונקציה בצורה רקורסיבית תהיה לך יותר פשוטה להבנה.כך תבין שבכל פעם המצביע שהפונקציה מקבלת הוא כבר מה שנמצא בתוך הערך next הנוכחי.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.