博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
山鬼的数据结构坑(栈)
阅读量:5996 次
发布时间:2019-06-20

本文共 1088 字,大约阅读时间需要 3 分钟。

世上焉有无双数,万般玄机谁可知,我本杯中一浮游,何来笑谈青莲久

,从解字上来说,是木戋,讲的是古人在悬崖峭壁上铸造可用于行走的通道,那时候人们利用栈来出入山,并在悬崖上进行开采与挖掘工作,

由于栈一般会比较窄,所以先进入的人总要等到他后面的人出去了,他才能出去,这种说法有点像杯子中的乒乓球,先放到杯子中的总是最后
一个拿出来,这也是为什么这种数据结构的命名叫栈,堆栈的说法也是如此。

所以我们需要一个东西来做容器,并且这个容器支持数据的存入,只是在取出的时候,只能从最后放入的开始取

function 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缀表达式等,当然也可以用来做堵塞处理,想像一下,用户被勾引到了一个页面里,发现什么都没有,想要登出却需要排队,等待后来的用户先登出,是不是感觉应用面很广呢,没事去堵那么几个人~

转载地址:http://fhqlx.baihongyu.com/

你可能感兴趣的文章
如何导出SQL Azure脚本?
查看>>
第十周了耶~
查看>>
08-工厂方法
查看>>
ASP.NET MVC深入浅出系列
查看>>
单例模式
查看>>
怎么清除删不掉的文件(win7)
查看>>
SQL觸發器聯級刪除
查看>>
博客园如何添加鼠标移动吸附效果
查看>>
10 个超棒的 jQuery 视频插件
查看>>
牛客小白月赛2 F题黑黑白白 (博弈或dfs)
查看>>
附加导航 affix,side--toolbar(可结合博客园使用~)
查看>>
C#之读取web上的xml
查看>>
beanUtils操作bean的属性
查看>>
备忘-Android ViewPager 与Gallery滑动冲突解决方法
查看>>
元素化设计原理及规则v1.0
查看>>
LeetCode – Refresh – Spiral Matrix II
查看>>
sublime快捷键
查看>>
Codeforces Round#522 Div2E(思维,背包,组合数学)
查看>>
根据生日,计算年龄
查看>>
余数求和
查看>>