日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

PHP实现简单顺序栈

發(fā)布時(shí)間:2025/3/21 php 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP实现简单顺序栈 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

棧與數(shù)組:php數(shù)組也有壓入壓出的方法array_push 和array_shift。是不是數(shù)組就是棧數(shù)據(jù)結(jié)構(gòu)?或者明明數(shù)組就可完成,為何還要棧

解答:去全國(guó)各地都可以用雙腿走到,為何選擇火車飛機(jī)?數(shù)組就是腿,棧就是火車飛機(jī)。首先不相等,其次棧可以讓我們集中精力去解決更加核心的業(yè)務(wù)需求。


簡(jiǎn)單順序棧實(shí)現(xiàn)

class?Data{private?$data;?public?function?__construct($data){$this->data=$data;?????????}?public?function?getData(){return?$this->data;} }?class?Stack{private?$size;private?$top;//棧頂?shù)臉?biāo)識(shí)private?$stack=array();public?function?__construct($size){return?$this->Init_Stack($size);}public?function?Init_Stack($size){$this->size=$size;$this->top=-1;//這里棧頂?shù)奈恢迷貆public?function?Empty_Stack(){if($this->top==-1)?return?1;elsereturn?0;}public?function?Full_Stack(){if($this->top<($this->size-1))?return?0;elsereturn?1;} //入棧 //本來(lái)打算直接算入Data對(duì)象,后來(lái)試驗(yàn)了下好像有個(gè)小問(wèn)題,就是單例的問(wèn)題吧,看來(lái)還是需要每次都新建一個(gè) /** *@param?$data?class?Data?的成員 * **/public?function?Push_Stack($data){if($this->Full_Stack())?echo?"棧滿了";else$this->stack[++$this->top]?=?new?Data($data);}//出棧public?function?Pop_Stack(){if($this->Empty_Stack())?echo?"棧空無(wú)數(shù)據(jù)!";elseunset($this->stack[$this->top--]);}//讀取棧頂元素public?function?Top_Stack(){return?$this->Empty_Stack()?"棧空無(wú)數(shù)據(jù)":$this->stack[$this->top]->getData();/*return?$this->Empty_Stack()?"棧空無(wú)數(shù)據(jù)!":$this->stack[$this->top]->getData();?*/} }//測(cè)試 //$data1?=new?Data('hello'); $data1='mini'; $stock?=new?Stack(5);? $stock->Push_Stack('jack'); $stock->Push_Stack($data1); $stock->Push_Stack($data1); $stock->Push_Stack($data1); $stock->Empty_Stack(); $stock->Pop_Stack(); $stock->Pop_Stack(); $stock->Pop_Stack(); //$stock->Pop_Stack(); $stock->Push_Stack(''); //$stock-> echo?$stock->Top_Stack(); ?>

關(guān)于循環(huán)鏈表和雙向鏈表,沒(méi)有再寫。順序存儲(chǔ)還是比較好理解。

補(bǔ)充關(guān)于棧的軟件應(yīng)用:Word,PS,瀏覽器常用的撤銷或者后退

補(bǔ)充棧擁有線性表的所有特性:上面是可以補(bǔ)充進(jìn)來(lái)幾個(gè)函數(shù):DestroyStack(銷毀)ClearStack(清空)StackLength(長(zhǎng)度)。所有函數(shù)只是一次演練,熟悉下思路,下次寫任何業(yè)務(wù)邏輯,符合需要的話可以直接使用該思想

轉(zhuǎn)載于:https://blog.51cto.com/10725691/1948667

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的PHP实现简单顺序栈的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。