03-12-2009, 22:36
|
|
|
חבר מתאריך: 30.07.05
הודעות: 949
|
|
דבר ראשון, בבקשה, כשאתה מפרסם קוד, ובמיוחד כשמדובר ביותר ממספר שורות של קוד אלא מספר פונקציות, אנא השתמש בתגיות ה-CODE או ה-PHP ע"מ ליישר את הטקסט כהלכה, ואנא הקפד עד הזחות נכונות.
ככה הקוד שלך נראה בגירסתו הקריאה:
קוד PHP:
#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
}
בקשר לשאלה שלך - מן הסתם באופרטור ההדפסה של 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.
|