栈的实现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
原创粉丝点击