博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript 栈 Stack
阅读量:5817 次
发布时间:2019-06-18

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

栈是只允许在表尾进行插入,删除的线性表。特点后进先出。

下面将演示用数组实现的栈

栈初始化:创建一个空栈

Init:function(){   this.STACKMAX = 100;   this.stack = new Array(this.STACKMACK);   this.top = -1;   return this.stack;}

 

判断栈空: 若栈为空返回true,否则返回false

Empty:function(){   if(this.top==-1){       return true;   }   else{        return false;   }}

 

进栈:若栈满,返回“栈满”。否则将元素elem作为新的栈顶元素。

Push:function(elem){   if(this.top==this.STACKMAX-1){      return "栈满";   }   else{      this.top++;      this.stack[this.top] = elem;   } }

 

退栈:删除栈顶元素,并返回其值

Pop:function(){    if(this.top==-1){        return "空栈,无法删除栈顶元素!";    }    else{        var x = this.stack[this.top];        this.top--;        return x;    } }

 

读栈顶元素:返回栈顶元素

Top:function(){    if(this.top!=-1){        return this.stack[this.top];    }    else{        return "空栈,顶元素无返回值!";     } }

 

清空栈:将栈清空为空栈

Clear:function(){    this.top=-1;}

 

栈长度:返回栈的元素个数,既栈的长度

Length:function(){   return this.top+1;}

栈示例代码如下:

var Stack = function(){}                        Stack.prototype={                Init:function(){                    this.STACKMAX = 100;                    this.stack = new Array(this.STACKMACK);                    this.top = -1;                    return this.stack;                },                Empty:function(){                    if(this.top==-1){                        return true;                    }                    else{                        return false;                    }                },                Push:function(elem){                    if(this.top==this.STACKMAX-1){                        return "栈满";                    }                    else{                        this.top++;                        this.stack[this.top] = elem;                    }                },                Pop:function(){                    if(this.top==-1){                        return "空栈,无法删除栈顶元素!";                    }                    else{                        var x = this.stack[this.top];                        this.top--;                        return x;                    }                },                Top:function(){                    if(this.top!=-1){                        return this.stack[this.top];                    }                    else{                        return "空栈,顶元素无返回值!";                    }                },                Clear:function(){                    this.top=-1;                },                Length:function(){                    return this.top+1;                }            }

 

在最近的日子里会给出栈的应用的例子,在此敬请期待。。。

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

你可能感兴趣的文章
powerdesigner that name already exists
查看>>
Boost入门二之thread遇到的坑
查看>>
iptables的conntrack表满了导致访问网站很慢
查看>>
排序-归并排序
查看>>
植入式攻击入侵检测解决方案
查看>>
ios打包问题
查看>>
互联网创业公司是否需要技术外包?
查看>>
软件行业的QA与QC的区别
查看>>
SqlServer数据库兼容级别查询与修改
查看>>
PHP初级学习一
查看>>
如何实现qq在线聊天功能
查看>>
Android自定义Dialog
查看>>
用JS实现简单的神经网络算法
查看>>
读书笔记:A Philosophy of Software Design (二)
查看>>
java使用jeids实现redis2.6的String操作(4)
查看>>
并发与并行
查看>>
在CentOS7 下安装 ffmpeg,mplayer,swftools
查看>>
c++ 文件的输入输出流
查看>>
PHP中curl的CURLOPT_POSTFIELDS参数使用细节
查看>>
python虚拟环境--virtualenv
查看>>