پیاده سازی پشته در PHP
یکی از کمبودهای قابل مشاهده در زبان برنامه نویسی PHP ساختار خام پشته است که البته برنامه نویسان برای این مشکل خود راهکارهای متفاوتی مییابند. اما برای بهبود در کار بهتر است از کلاسهای مناسب برای این ساختار دادهای استفاده کرد.
پیاده سازی پشته در PHP
پشته یا Stack چیست؟
پشته یا stack یکی از انواع ساختارهای دادهای است و برای ذخیره و بازیابی دادهها کاربرد فراوانی دارد. پشته در برنامه نویسی کاربردهای بسیار زیادی دارد. الگوریتم و نحوهی کار پشتهها به صورت LIFO است. واژهی LIFO مخفف عبارت Last In First Out است که این بدان معنی است. همیشه آخرین ورودی اولین خروجی است. این LIFO است که اساس کار پشتهها را تشکیل داده و سبک بازیابی دادهای در پشتهها را سازماندهی میکند.
هر پشته قادر به انجام موارد زیر است:
- init: پشته را میسازد.
- push: یک آیتم را به بالای پشته اضافه میکند.
- pop: آخرین آیتمی که به پشته اضافه شده را میخواند و سپس حذف میکند.
- isEmpty: مشخص میکند که آیا پشته دارای آیتم دیگری هست یا خیر (در واقع خالی بودن پشته را بررسی میکند).
برای پیاده سازی پشته از کلاس زیر میتوان استفاده کرد:
<?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); } } ?>
از کلاس بالا به شکل زیر میتوانید استفاده کنید:
<?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 قابل تغییر است.
- کد بالا ساخت پشته در PHP بود که با کمک آن میتوانید عملیاتها و تکنیکهای پشته را در برنامهی خود بهره بگیرید و از آن لذت ببرید.
خب کد یک پشتهی ساده است با کاربردهای بسیار فراوان ولی در صورتی که شما یک کلاس پشتهی کاملتر در اختیار دارید حتما آن را برای ما ارسال کنید تا در اختیار دیگران هم قرار بگیرد.
با شی گرایی در سی شارپ بیشتر آشنا شوید.
ارسال پاسخ