پاورپوینت پشته Stack (pptx) 29 اسلاید
دسته بندی : پاورپوینت
نوع فایل : PowerPoint (.pptx) ( قابل ویرایش و آماده پرینت )
تعداد اسلاید: 29 اسلاید
قسمتی از متن PowerPoint (.pptx) :
پشته Stack
Instructor: Mr.Vahidipour
تعريف
حالت خاصي از نوع داده عمومي ليستهاي مرتب شده
LIFO ( Last in first out)
ساختمان داده نيست بلكه نحوه استفاده از يك ساختمان داده است.
يك آرايه نقش پشته را بازي مي كند اگر :جايگذاري و حذف از يك سمت (top) انجام شود.
ADT پشته
class Stack
{ //Object: A finite ordered list with zero or more elements
public:
Stack(int MaxStackSize=DefauktSize);
Boolean IsFull();
void Push (int &item);
Boolean IsEmpty();
int* Delete();
}
مثال
طراحي كلاس Stack
نوع متغيري كه در داخل استك نگهداري مي شود متفاوت است.
بهتر نیست که یک بار یک لیست را طراحی کنیم و چندین بار از آن استفاده کنیم؟
C++ این امکان را به ما می دهد.
برای این که بتوانیم از یک استك برای چند بار استفاده کنیم باید از کلاس های الگو(template) استفاده کنیم.
چگونگی کار با template
دستور template
را قبل از هر کلاس وهر تابعی که در آن از template استفاده می شود قرار داده می شود.
به جای KeyType می توان هر اسم دیگر که در شرایط اسم در C++ صدق می کند استفاده کرد با این شرط که بعد از اسم گذاری فقط ازهمان اسم استفاده شود.
چگونگی کار با template- ادامه
اگر در کلاسی از template استفاده شود تعریف توابع آن کلاس به شکل مقابل تبدیل می شوند.
template
retValType myClass< KeyType > :: Func(paramet list)
{
declaration and statements
}
template
void Stack< KeyType > :: Push(KeyType newElement)
{
//declaration and statements
}
چگونگی کار با template- ادامه
هر جا لازم است متغیری از نوع الگو استفاده شود از قوانین تعریف و استفاده از متغیر معمولی استفاده می کنیم. مثلا برای ارسال به تابع از روش زیر استفاده می کنیم.
retValType Function(KeyType value){}
چگونگی کار با template- ادامه
برای ساختن شیئی از یک کلاس از نوع متغیری که میخواهیم از دستورالعمل زیر استفاده می کنیم:
myClass myObject;
مثال:
Stack intStack;
که یک شی پشته با نوع اعداد صحیح ایجاد می کند.
نکته : پس از تعیین نوع شی نمی توان از نوع دیگر به شی فرستاد
خطای زمان کامپایل، اجرا و يا از دست دادن اطلاعات