13-02-2011, 07:47
|
|
|
|
חבר מתאריך: 03.05.06
הודעות: 45
|
|
עזרה ביצירת רשימה מקושרת דו כיוונית
היי,
אני רוצה לבנות רשימה מקושרת דו כיוונית בC לפי אותה הלוגיקה של הרשימה החד הכיוונית כמו שמופיע בתוך לולאת FOR הבאה:
קוד:
struct Item {int data
item * next
};
item * head = NULL, * temp;
for (; i<5 ; i++) {
temp = new item;
temp -> next= *head;
temp -> item= rand()/%10;
head=temp
}
אני רוצה לבנות את אותה הרשימה אבל שתהיה דו כיוונית שבשני הכיוונים היא תסתיים בNULL., ז"א שכל איבר יהיה מטיפוס המבנה:
קוד:
struct Item {int data
item * next{
item * prev};
חשבתי על אפשרות כזאת:
קוד:
item * head = NULL, * temp;
for (; i<5 i++){
temp =new item;
temp ->next = head;
head ->prev = temp
temp -> item= rand()/%10
head =temp{
הבעיה שבמחזור הראשון של הלולאה head עדיין לא קיבל את כתובת המבנה שtemp מצביע עליו, (head הוא עדיין מצביע על NULL)
אז במחזור הראשון הפקודה - לא תעבוד/לא חוקית...
במחזורים הבאים זה יעבוד אבל הבעיה היא המחזור הראשון... *
מישהו יכול בבקשה לעזור לי לבנות את זה נכון?
תודה..
נערך לאחרונה ע"י TheOne23 בתאריך 13-02-2011 בשעה 08:01.
|