این الگوریتم درسته؟؟؟؟

lighting

Member
دوستان این الگوریتم برای معکوس کردن عناصر پشته درسته؟

اول فرض می کنیم پشته پره بعد یه پشته خالی کمکی درست می کنیم (از صف هم میشه؟؟؟؟)

اول همه عناصر را از پشته pop می کنیم و توی پشته جدید می نویسیم بعد همه عناصر رو از پشته جدید

خوانده و یکی یکی در پشته قبلی push می کنیم؟؟؟؟؟

این کار برای ساختن پشته جدید درسته؟؟
stack *p=new stack​
 

the_king

مدیرکل انجمن
دوستان این الگوریتم برای معکوس کردن عناصر پشته درسته؟

اول فرض می کنیم پشته پره بعد یه پشته خالی کمکی درست می کنیم (از صف هم میشه؟؟؟؟)

اول همه عناصر را از پشته pop می کنیم و توی پشته جدید می نویسیم بعد همه عناصر رو از پشته جدید

خوانده و یکی یکی در پشته قبلی push می کنیم؟؟؟؟؟

این کار برای ساختن پشته جدید درسته؟؟
stack *p=new stack​

با پشته که قطعا درسته چون خاصیت اصلی پشته اینه که همیشه با ترتیب معکوس push شدنش pop می کنه.

با صف هم عملی است به شرطی که صف اجازه خارج کردن عنصر از ته صف رو بده چون معمولا عضوی از صف
خارج میشه که جلوی صف قرار داره و در این حالت کمکی به معکوس کردن نمی کنه.
 

lighting

Member
خیلی ممنون از راهنماییتون

فقط برای درست کردن پشته جدید این راه درسته دیگه :

stack *p=new stack​

بعد باید pop و push کنیم.
 
آخرین ویرایش:

the_king

مدیرکل انجمن
خیلی ممنون از راهنماییتون

فقط برای درست کردن پشته جدید این راه درسته دیگه :

stack *p=new stack​

بعد باید pop و push کنیم.

اگه منظورتون stack در ++C است، نه، نوع داده داخل پشته رو بعد از stack داخل < > مشخص می کنید، مثلا :
کد:
#include <stack.h>
.
.
.
stack<int> p;
اینطوری push می کنید :
کد:
p.push(i);
و اینطوری pop می کنید، البته به کمک top چون pop به تنهایی فقط بر می داره، مقدارش رو اعلام نمی کنه :
کد:
i = p.top();
p.pop();
در استاندارد C تعریفی برای stack ارائه نشده، خودتان باید پیاده سازی اش کنید، مطابق هر کدی که خودتان برای
پیاده سازی stack انتخاب کرده اید عمل خواهید کرد، اما معمولا چیزی شبیه به ;stack *p = NULL خواهد بود.
 

lighting

Member
خب این جا من باید الگوریتمش رو بنویسم برای همین نباید یه include بزنم برای همین توی الگوریتم چه جوری نمایشش بدم؟​
 

the_king

مدیرکل انجمن
خب این جا من باید الگوریتمش رو بنویسم برای همین نباید یه include بزنم برای همین توی الگوریتم چه جوری نمایشش بدم؟​

البته الگوریتم نوشتن قاعده و قانون های مشخصی نداره، اما لزومی نداره که روی ویژگی های یک زبان تکیه کنید.

معکوس کردن پشته p به کمک پشته t
کد:
1 )  t = new stack
2 )  if (p.empty) jump to 6
3 )  i = p.pop
4 )  t.push(i)
5 )  jump to 2
6 )  p = new stack
7 )  if (t.empty) jump to 11
8 )  i = t.pop
9 )  p.push(i)
10)  jump to 7
11)  finish
 

جدیدترین ارسال ها

بالا