שאלה 2.
2 posters
עמוד 1 מתוך 1
שאלה 2.
מישהו עשה את ה- MERGE ברקורסיה?
אני תמיד נשאר עם רשימה ממויינת אבל אין לי איך להכניס ל- TAIL את ה- NODE האחרון..
זו הרקורסיה שלי:
ListNode* merge3(ListNode* head1, ListNode* head2)
{
if (head1 == NULL)
return head2;
if (head2 == NULL)
return head1;
if (*head1->dataPtr <= *head2->dataPtr)
{
head1->next = merge3(head1->next, head2);
return head1;
}
else
{
head2->next = merge3(head1, head2->next);
return head2;
}
}
הכל טוב ויפה אבל אני לא יודע איך עכשיו להכניס את ה- TAIL.
אגב הפונקציה מעטפת שלי יוצרת רשימה חדשה שמקבלת את מה שהרקורסיה הזו מחזירה
אני תמיד נשאר עם רשימה ממויינת אבל אין לי איך להכניס ל- TAIL את ה- NODE האחרון..
זו הרקורסיה שלי:
ListNode* merge3(ListNode* head1, ListNode* head2)
{
if (head1 == NULL)
return head2;
if (head2 == NULL)
return head1;
if (*head1->dataPtr <= *head2->dataPtr)
{
head1->next = merge3(head1->next, head2);
return head1;
}
else
{
head2->next = merge3(head1, head2->next);
return head2;
}
}
הכל טוב ויפה אבל אני לא יודע איך עכשיו להכניס את ה- TAIL.
אגב הפונקציה מעטפת שלי יוצרת רשימה חדשה שמקבלת את מה שהרקורסיה הזו מחזירה
shay86- by ref
- מספר הודעות : 14
Join date : 11.04.09
Re: שאלה 2.
לא הצלחתי להבין את אופי הרקורסיה של הפונקציה שלך.
מה שכן אפשר להציע לך לנסות, וזו רק הצעה וזה דיי לא שגרתי,
זה להגדיר בפונקציית המעטפת שלך משתנה סטטי
static ListNode* updatedTail
ולנסות למצוא דרך שבה הפונקציה הרקורסיבית שלך תעדכן את הזנב הכי רלוונטי כך שכשהרקורסיה תגמר תהייה לך הכתובת המעודכנת והנכונה של הזנב. וכל שתצטרך לעשות זה לשים כתובת זו בשדה הtail של רשימת הפלט שלך.
סתם רעיון.. לא יודע עד כמה הוא יישים..
מה שכן אפשר להציע לך לנסות, וזו רק הצעה וזה דיי לא שגרתי,
זה להגדיר בפונקציית המעטפת שלך משתנה סטטי
static ListNode* updatedTail
ולנסות למצוא דרך שבה הפונקציה הרקורסיבית שלך תעדכן את הזנב הכי רלוונטי כך שכשהרקורסיה תגמר תהייה לך הכתובת המעודכנת והנכונה של הזנב. וכל שתצטרך לעשות זה לשים כתובת זו בשדה הtail של רשימת הפלט שלך.
סתם רעיון.. לא יודע עד כמה הוא יישים..
Re: שאלה 2.
אז כנראה שהרקורסיה שלי לא נכונה בכלל,
יש לך רעיון אחר לרקורסיה חדשה?
המחשבה שלי הייתה כיוון שזו רקורסיה אז אני חייב לשלוח את הNODE הבא
ולכן אני חייב להתקדם כל פעם אחד קדימה.
יש לך רעיון אחר לרקורסיה חדשה?
המחשבה שלי הייתה כיוון שזו רקורסיה אז אני חייב לשלוח את הNODE הבא
ולכן אני חייב להתקדם כל פעם אחד קדימה.
shay86- by ref
- מספר הודעות : 14
Join date : 11.04.09
עמוד 1 מתוך 1
Permissions in this forum:
אתה לא יכול להגיב לנושאים בפורום זה