手机版

JavaScipt中栈的实现方法

时间:2021-09-17 来源:互联网 编辑:宝哥软件园 浏览:

接下来是数据结构的第一部分,堆栈。堆栈是符合后进先出法的有序集合。栈顶总是最新的元素。例如,堆栈就像盒子里的一叠书。如果你想拿下面的书,你必须先拿上面的书。(当然不能先拿下面这本书。)看插图就明白了。

JavaScipt中堆栈的实现首先,创建一个构造函数。

/* * *堆栈的构造函数*/函数Stack() {//使用数组模拟堆栈var item=[];}堆栈需要以下方法:

Push(元素):在堆栈顶部添加几个元素pop():移除并返回顶部元素peek():返回顶部元素isAmpty:检查堆栈是否为空,如果为空,则返回true clear:移除堆栈中的所有元素size:返回堆栈中的元素数量。Print:以字符串形式显示堆栈中的所有内容。push方法:的实现描述需要向堆栈中添加新元素。元素位于队列的末尾。也就是说,我们可以用数组的push方法来模拟实现。实施:

/* * *将元素放在堆栈上,并将其放在数组的最后一位* @ param {any}元素所接受的元素,而不限制类型*/this。push=function (element) {items。push(元素);};pop方法:的实现描述需要弹出栈顶元素并返回弹出的值。可以用数组pop方法进行模拟。实施:

/* * *弹出堆栈的顶部元素* @return {Any}返回弹出的值*/this . pop=function(){ return items . pop();};Peek方法实现指令:查看堆栈的顶部元素,这可以通过数组长度来实现。实施:

/* * *检查栈顶元素* @return {Any}返回栈顶元素*/this . peek=function(){ return items[items . length-1];}前三个是stack方法的核心,其他方法在这里列出一次。因为后面要讨论的队列会和这部分有很大的重叠。实施:

/* * *确定堆栈是否为空* @return {Boolean}如果堆栈为空,则返回true,否则返回false */this。isampty=function () {return items。长度====0 }如果它不为空;/* * *清除堆栈中的所有内容*/this。clear=function(){ items=[];};/* * *返回堆栈长度* @返回{Number}堆栈长度*/this . size=function(){ return items . length;};/* * *以字符串形式显示堆栈中的所有内容*/this . print=function(){ console . log(items . tostring());};实际应用栈中有很多实际应用,书中有一个十进制到二进制的函数。(如果不知道二进制怎么算,可以百度一下。)这里是函数的源代码。原理是输入要转换的数字,除以二,然后取整。最后,使用while循环,堆栈中的所有数字被拼接成字符串进行输出。

/* * *将十进制数转换为二进制数* @param {Number} decNumber要转换的十进制数* @返回{Number}转换后的二进制数*/函数除以2(dec Number){ var rem stack=new stack(),rem,二进制字符串=' ';while(decNumber 0){ rem=math . floor(decNumber % 2);remstack . push(rem);decNumber=math . floor(decNumber/2);} while(!remstack . isampty()){ binary string=remstack . pop()。toString();}返回binaryString};至此,栈的研究已经告一段落。希望对大家学习javascript中栈的实现方法有所帮助。

版权声明:JavaScipt中栈的实现方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。