栈的实现javascript
来源:互联网 发布:如何查看电脑mac地址 编辑:程序博客网 时间:2024/04/30 04:58
栈是限定仅在表尾进行插入或删除操作的线性表,栈是先进后出的。栈的表尾称为栈顶(top),而表头端称为栈底(bottom)。
和线性表类似,栈也有两种存储表示方法,顺序栈和链栈。
这里讲一下顺序栈,设置指针top指示栈顶元素在顺序栈中的位置。通常的做法就是以top=0表示空栈。base为栈底指针,top为栈顶指针。
如果base为null,则表示栈结构不存在,如果top=base则表示空栈。每当插入一个新的元素,top+1,删除元素,top-1。因此,非空栈中top始终在栈顶元素的下一位置上。
如下图所示
javascript中自带了数组的push和pop方法,其原理无法就是数组最后继续添加和删除数组最后一个元素。这里我们自己实现一遍栈的操作,代码如下:
首先需要定义头指针function Stack(count){var top=-1;//top头指针this.myArray=new Array();if(count!=undefined){this.count=count;this.myArray=new Array(this.count);}else{this.count=0;}
然后是入栈操作
//入栈this.In=function(value){if(top==this.count){return false;}else{++top;this.myArray[top]=value;return true;}return false;}
和出栈操作
//出栈this.Out=function(){if(top==-1){return false;}else{var removeValue=this.myArray[top];this.myArray[top]=null;top--;return removeValue;}}链栈的操作和链表类似,这里就不做详细介绍了。
1 0
- 栈的实现javascript
- JavaScript栈的实现
- javascript AOP的实现javascript
- JavaScript栈的实现和回文判断
- 实现JavaScript的继承
- MD5的Javascript实现
- javascript 的replaceAll实现
- javascript的xmlhttp实现
- javascript类的实现
- javascript的xmlhttp实现
- sprintf的JavaScript实现
- javascript类的实现
- JavaScript实现的Calendar
- JavaScript实现的tab
- javascript 类的实现
- JavaScript实现的Map
- javascript实现的日历
- JavaScript的Prototype实现
- Project Euler Problem 11
- jQuery连缀(访法链)
- HTML JS 调用Cordys WebService
- html5---上传文件
- 【LeetCode】205.Isomorphic Strings
- 栈的实现javascript
- python实现大整数相乘---格子乘法
- HDU_1002
- 算法导论笔记:32字符串匹配算法
- jQuery自定义选择符
- hdu 2066 一个人的旅行
- 进程模块枚举与隐藏
- Windows不能在本地计算机启动Apache2
- Reactor模型