PDA

View Full Version : سوال: پياده سازي صف و پشته



aaatishpare
شنبه 21 اردیبهشت 1387, 18:38 عصر
سلام دوستان.
پياده سازي صف و پشته به كمك ليست پيوندي 1طرفه.
كسي هست كمك كنه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ :گریه::گریه::گریه:
با تشكر.

MRHagh
چهارشنبه 01 خرداد 1387, 14:40 عصر
کلاس زیر یک لیست پیوندی را پیاده سازی میکند :

class LinledList
{
double value;
public:
LinkedList *next;
LinkedList (double v=0, LinkedList *t=0): value(v), next(t){}
double Getvalue () { return value; }
void SetValue (double value) { this->value=value; }
}top=0;
برای تبدیل آن به یک پشته از توابع push و pop زیر استفاده کنید :

void Push (double value)
{
LinkedList *curptr=new LinkedList(value, top);
top=curptr;
}

double Pop ()
{
int RetVal;
LinkedList *PopPtr;
PopPtr=top;
top=top->next;
RetVal=PopPtrr->Getvalue();
delete(PopPtr);
return RetVal;
}
موفق باشید ...

adine2020
جمعه 04 تیر 1389, 13:09 عصر
ببخشید چه طوری میشه پشته رو از اخر چاپ کرد
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

Salar Ashgi
جمعه 04 تیر 1389, 14:42 عصر
کاربر adine2020 (http://www.barnamenevis.org/forum/member.php?u=122994) ، مواظب باشید که تاپیک تبدیل به درخواست کد آماده نشود ، چراکه در غیر اینصورت حذف

خواهد شد .

tdkhakpur
جمعه 04 تیر 1389, 15:17 عصر
ببخشید چه طوری میشه پشته رو از اخر چاپ کرد
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
جناب adine2020 (http://www.barnamenevis.org/forum/member.php?u=122994) راه های زیادی برای این کار وجود دارد ولی کد ارسالی فوق برای لیست پیوندی تنظیمات نا مناسبی دارد به هر صورت اگر انتها به NULL ختم شده باشد بصورت زیر میتوان از توابع باز گشتی از انتها دور زد.


void Pop ( LinkedList *PopPtr)
{
if( PopPtr !=NULL )
Pop (PopPtrr->next)
cout<<PopPtrr->Getvalue()
delete(PopPtr);
}
}