![ישן](https://static.fresh.co.il/images/vBulletin/statusicon/post_old.gif)
13-02-2011, 07:47
|
![צלמית המשתמש של TheOne23](image.php?u=88250&dateline=1214756522) |
|
|
חבר מתאריך: 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)
אז במחזור הראשון הפקודה - לא תעבוד/לא חוקית...
במחזורים הבאים זה יעבוד אבל הבעיה היא המחזור הראשון... *![Frown](images/smilies/frown.gif)
מישהו יכול בבקשה לעזור לי לבנות את זה נכון?
תודה.. ![יאמי](images/freshsmilies/yum.gif)
נערך לאחרונה ע"י TheOne23 בתאריך 13-02-2011 בשעה 08:01.
|