نویسنده : امیر
نظرات : ۰ دیدگاه
بازدید : ۸۴۶ بازدید
تاریخ : ۱۳ تیر ۱۳۹۶

یکی از کمبود های قابل مشاهده در زبان برنامه نویسی PHP ساختار خام پشته می باشد که البته برنامه نویسان برای این مشکل خود راهکارهای متفاوتی می یابند اما برای بهبود در کار بهتر است از کلاس های مناسب برای این ساختار داده ای استفاده کرد با ما همراه باشید.
پشته یا Stack چیست ؟
پشته یا stack یکی از انواع ساختارهای داده ای است و برای ذخیره و بازیابی داده ها کاربرد فراوانی دارد. پشته در برنامه نویسی کاربردهای بسیار زیادی دارد. الگوریتم و نحوه ی کار پشته ها به صورت LIFO است.
واژه ی LIFO مخفف عبارت Last In First Out است که این بدان معنی می باشد که همیشه آخرین ورودی اولین خروجی می باشد. این LIFO است که اساس کار پشته ها را تشکیل داده و سبک بازیابی داده ای در پشته ها را سازماندهی می کند.
هر پشته قادر به انجام موارد زیر می باشد:
init : پشته را میسازد.
push : یک آیتم را به بالای پشته اضافه میکند.
pop : آخرین آیتمی که به پشته اضافه شده باشد را می خواند و سپس حذف میکند.
isEmpty : مشخص میکند که آیا پشته دارای آیتم دیگری هست یا خیر ( در واقع خالی بودن پشته را بررسی می کند).
برای پیاده سازی پشته از کلاس زیر می توان استفاده کرد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
<?php class MyStack { protected $stack; protected $limit; public function __construct($limit=10) { $this->stack = array(); $this->limit = $limit; } public function push($value) { if (count($this->stack) < $this->limit) { array_unshift($this->stack, $value); } else { throw new RunTimeException('The Stack is full..!!'); } } public function pop() { if ($this->isEmpty()) { throw new RunTimeException('The Stack is empty..!!'); } else { return array_shift($this->stack); } } public function top() { return current($this->stack); } public function isEmpty() { return empty($this->stack); } } ?> |
از کلاس بالا به شکل زیر می توانید استفاده کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php $myBooks = new ReadingList(); $myBooks->push('item 1'); $myBooks->push('item 2'); echo $myBooks->pop(); // Output -> "item 2" echo $myBooks->pop(); // Output -> "item 1" $myBooks->push('item 3'); echo $myBooks->top(); // Output -> "item 3" echo $myBooks->pop(); // Output -> "item 3" ?> |
نکته : تابع top تنها مقدار بالای پشته را نمایش می دهد ولی همچنان در پشته مقدار آن خانه باقی می ماند.
توضیحات :
- کد بالا به زبان پی اچ پی می باشد .
- از کلاس زیر در کنار پروژه های خود استفاده کنید تا یک پشته پویا داشته باشید.
- پشته ی بالا را می توان به تعداد خانه های متفاوتی محدود کرد که با توجه به نیاز شما با تغییر متغیر $limit قابل تغییر است.
خب کد یک پشته ی ساده می باشد با کاربردهای بسیار فراوان ولی در صورتی که شما یک کلاس پشته ی کامل تر در اختیار دارید حتما آن را برای ما ارسال کنید تا در اختیار دیگران هم قرار بگیرد.
موفق و پیروز باشید.
پاسخی بگذارید