山鬼的数据结构坑(栈)

世上焉有无双数,万般玄机谁可知,我本杯中一浮游,何来笑谈青莲久
栈,从解字上来说,是木戋,讲的是古人在悬崖峭壁上铸造可用于行走的通道,那时候人们利用栈来出入山,并在悬崖上进行开采与挖掘工作,由于栈一般会比较窄,所以先进入的人总要等到他后面的人出去了,他才能出去,这种说法有点像杯子中的乒乓球,先放到杯子中的总是最后一个拿出来,这也是为什么这种数据结构的命名叫栈,堆栈的说法也是如此。所以我们需要一个东西来做容器,并且这个容器支持数据的存入,只是在取出的时候,只能从最后放入的开始取
f

unction Stack() {
  this.length=0;
  this.Data=[];
  //this.push=push;
  //this.pop=pop;
  //this.shift=shift;
}/*
 *向数据中写入数据,并且增加其长度
 */
Stack.prototype.push = function(ele) {
  // body...
  this.Data[this.length]=ele;
  this.length++;
  return true;
};/*
 *判断数据的长度,如果存在数据,就将最外层的取出,并且将长度缩短
 */
Stack.prototype.pop=function(ele){
  // body...
  if(this.length==0){
    return -1;
  }else{
    var out=this.Data.splice(this.length-1,1);
    this.length--;
    return out;
  }
}/*
 *只获取最外层数据
 */

Stack.prototype.peek=function(){
  if(this.length==0){
    return -1;
  }else{
    return this.Data[this.length-1];
  }  
}
TEST:
var a=new Stack();
a.push(1);
a.push("H");
a.push(2);
a.push("O");
console.log(a.pop());
OUTPUT: O

基本实现与逻辑都还是很容易明白,比较难的是如何对抽象逻辑进行具现,一般的用处有如回文判断,X缀表达式等,当然也可以用来做堵塞处理,想像一下,用户被勾引到了一个页面里,发现什么都没有,想要登出却需要排队,等待后来的用户先登出,是不是感觉应用面很广呢,没事去堵那么几个人~

作者:山鬼Sakura
链接:https://juejin.im/post/5a07b3136fb9a04514638461
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值