PHP实现简单顺序栈

  

栈与数组:php数组也有压入压出的方法array_push和array_shift。是不是数组就是栈数据结构吗?或者明明数组就可完成,为何还要栈

解答:去全国各地都可以用双腿走到,为何选择火车飞机?数组就是腿,栈就是火车飞机。首先不相等,其次栈可以让我们集中精力去解决更加核心的业务需求。


简单顺序栈实现

class 数据{   ,,private 数据;美元,   ,,public  function  __construct(元数据){   ,,,,,,,这个→美元美元data=https://www.yisu.com/zixun/数据;   }      公共函数getData () {   返回$ this ->数据;   }   }      栈类{   私人美元大小;   私人顶级美元;//栈顶的标识   私人数组$堆栈=();      公共函数__construct(大小){   返回$ this -> Init_Stack($大小);   }   公共函数Init_Stack(大小){=$ $ this ->大小尺寸;   $ this ->高级=1;//这里栈顶的位置元素   }      公共函数Empty_Stack () {   if ($ this ->==1)返回1;   其他的   返回0;   }      公共函数Full_Stack () {   如果($ this -> <($ this ->大小是1))返回0;   其他的   返回1;   }//入栈//本来打算直接算入数据对象,后来试验了下好像有个小问题,就是单例的问题吧,看来还是需要每次都新建一个/* *   * @param $ data类数据的成员   *   * */公共函数Push_Stack(元数据){   如果($ this -> Full_Stack())回声“栈满了”;   ,,,,,,,   ,,,,,,,,,,,这个→美元堆栈(+ + $ this→前),=,new 数据(元数据);   ,,,}      ,,,//出栈   ,,,public  function  Pop_Stack () {   ,,,,,,,如果($ this→Empty_Stack ()), echo “栈空无数据!”;   ,,,,,,,   ,,,,,,,,,,,设置($ this→堆栈[$ this→高级——]);   ,,,}   ,,,//读取栈顶元素   ,,,public  function  Top_Stack () {   ,,,,,,,return  $ this→Empty_Stack() ?“栈空无数据”:$ this→堆栈($ this→高级)→getData ();   ,,,,,,,/* return  $ this→Empty_Stack() ?“栈空无数据!”:$ this→堆栈($ this→高级)→getData (); */,,,}   }//测试//美元data1 =new 数据(“你好”);   美元data1=懊阅恪?   stock 美元;=new 堆栈(5),,   美元股票→Push_Stack(‘杰克’);   美元股票→Push_Stack ($ data1);   美元股票→Push_Stack ($ data1);   美元股票→Push_Stack ($ data1);   美元股票→Empty_Stack ();   美元股票→Pop_Stack ();   美元股票→Pop_Stack ();   美元股票→Pop_Stack ();//美元股票→Pop_Stack ();////美元股票→Push_Stack (");//美元股票→   echo 股票→美元Top_Stack ();   祝辞;

关于循环链表和双向链表,没有再写。顺序存储还是比较好理解。

补充关于栈的软件应用:词,PS,浏览器常用的撤销或者后退

补充栈拥有线性表的所有特性:上面是可以补充进来几个函数:DestroyStack(销毁)ClearStack(清空)StackLength(长度)。所有函数只是一次演练,熟悉下思路,下次写任何业务逻辑,符合需要的话可以直接使用该思想

PHP实现简单顺序栈