最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

如何用JavaScript实现一个栈

来源:动视网 责编:小采 时间:2020-11-27 19:33:50
文档

如何用JavaScript实现一个栈

如何用JavaScript实现一个栈:这篇文章主要介绍了关于如何用JavaScript实现一个栈,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下什么是栈(Stack)栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的末尾,称为栈顶,另一端叫栈底。在栈
推荐度:
导读如何用JavaScript实现一个栈:这篇文章主要介绍了关于如何用JavaScript实现一个栈,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下什么是栈(Stack)栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的末尾,称为栈顶,另一端叫栈底。在栈


最后,用pop方法把栈中的元素都移除,把出栈的元素连接成字符串(行{5})。

测试一下:

console.log(pideBy2(520)); //
输出1000001000 console.log(pideBy2(10)); //输出1010 console.log(pideBy2(1000)); //输出1111101000

接下来,可以很容易的修改上面的算法,使它能够把十进制转化为任何进制。除了让十进制数字和2整除转成二进制数,还可以传入其他任意进制的基数作为参数,就像下面的算法这样:

function baseConverter (decNumber, base) {

 var remStack = new Stack(),
 rem,
 baseString = '';
 digits = '0123456789ABCDEF'; //{6}

 while (decNumber>0) { 
 rem = Math.floor(decNumber % base);
 remStack.push(rem); //{3}
 decNumber = Math.floor(decNumber / base);
 }

 while (!remStack.isEmpty()) {
 baseString += digits[remStack.pop()]; //{7}
 }

 return baseString;
}

在将十进制转成二进制时,余数是0或1;在将十进制转成八进制时,余数时0-8之间的数;但是将十进制转成十六进制时,余数时0-9之间的数字加上A、B、C、D、E、F(对应10、11、12、13、14和15)。因此,需要对栈中的数字做个转化才可以(行{6}、{7})。

来测试一下输出结果:

console.log(baseConverter(1231,2)); //
输出10011001111 console.log(baseConverter(1231,8)); //输出2317 console.log(baseConverter(1231,16)); //输出4CF

显然是正确的。

小结

我们用js代码自己实现了栈。并且通过进制转换的例子来实际应用了它。栈的应用实例还有很多,比如平衡圆括号和汉诺塔。

文档

如何用JavaScript实现一个栈

如何用JavaScript实现一个栈:这篇文章主要介绍了关于如何用JavaScript实现一个栈,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下什么是栈(Stack)栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的末尾,称为栈顶,另一端叫栈底。在栈
推荐度:
标签: 实现 js javascript
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top