לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

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



  #1  
ישן 03-12-2009, 20:34
  birendorf birendorf אינו מחובר  
 
חבר מתאריך: 02.12.09
הודעות: 19
help with link list

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

#include <iostream>
#include <string>
using namespace std;
struct List
{
char data;
List *next;
};

typedef List* ListPtr;

void head_insert(ListPtr& head, char letter);
void outpuut(ListPtr& head, char letter);
int main()
{
char addletter;
ListPtr head;
head= new List;
head->next=NULL;

cout<<"please enter your word"<<endl;
do
{
cin.get(addletter);
head_insert(head, addletter);
}while (addletter != '\n');
outpuut(head, addletter);
return 0;
}
void head_insert(ListPtr& head, char letter)
{
ListPtr temp;
temp = new List;
temp->data= letter;
temp->next= head;
head= temp;
}
void outpuut(ListPtr& head, char letter)
{
ListPtr output;
for (output=head; output!= NULL; output=output->next) //run the loop
{
// head_insert(head, letter); // to change the char order again
ListPtr temp;
temp = new List;
temp->data= letter;
temp->next= head;
head= temp;
cout<<output->data; //output
if (output->next== NULL)
cout<<endl<<"NULL FOUND"<<endl;
}
cout<<endl;
for (output=head; output!= NULL; output=output->next)
cout<<output->data; //output

}
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 03-12-2009, 22:36
  Dark Knight Dark Knight אינו מחובר  
 
חבר מתאריך: 30.07.05
הודעות: 949
שלח הודעה דרך ICQ אל Dark Knight
בתגובה להודעה מספר 1 שנכתבה על ידי birendorf שמתחילה ב "help with link list"

דבר ראשון, בבקשה, כשאתה מפרסם קוד, ובמיוחד כשמדובר ביותר ממספר שורות של קוד אלא מספר פונקציות, אנא השתמש בתגיות ה-CODE או ה-PHP ע"מ ליישר את הטקסט כהלכה, ואנא הקפד עד הזחות נכונות.
ככה הקוד שלך נראה בגירסתו הקריאה:
קוד PHP:
 #include <iostream>
#include <string>
using namespace std;
struct List
{
    
char data;
    List *
next;
};

typedef List* ListPtr;

void head_insert(ListPtrheadchar letter);
void outpuut(ListPtrheadchar letter);

int main()
{
    
char addletter;
    
ListPtr head;
    
head= new List;
    
head->next=NULL;

    
cout<<"please enter your word"<<endl;
    do
    {
        
cin.get(addletter);
        
head_insert(headaddletter);
    }while (
addletter != '\n');
    
outpuut(headaddletter);
    return 
0;
}

void head_insert(ListPtrheadchar letter)
{
    
ListPtr temp;
    
temp = new List;
    
temp->dataletter;
    
temp->nexthead;
    
headtemp;
}

void outpuut(ListPtrheadchar letter)
{
    
ListPtr output;
    for (
output=headoutput!= NULLoutput=output->next//run the loop
    
{
        
// head_insert(head, letter); // to change the char order again
        
ListPtr temp;
        
temp = new List;
        
temp->dataletter;
        
temp->nexthead;
        
headtemp;
        
cout<<output->data//output
        
if (output->next== NULL)
            
cout<<endl<<"NULL FOUND"<<endl;
    }
    
cout<<endl;
    for (
output=headoutput!= NULLoutput=output->next)
        
cout<<output->data//output




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

עכשיו, לי, אישית, הפתרון הרקורסיבי נשמע הכי נוח:

קוד:
void output(ListPtr head) { if (NULL == head) return; // Ending condition - stop recursion output(head->next); cout << head->data; }


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


נערך לאחרונה ע"י Dark Knight בתאריך 03-12-2009 בשעה 22:39.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

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

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 11:15

הדף נוצר ב 0.06 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר