使用 JavaScript 实现栈
JavaScript 实现 使用
2023-09-11 14:17:03 时间
1.栈的基本操作
function Stack() { //使用数组保存栈元素 var items = []; //添加新元素到栈顶(相当于数组的末尾) this.push = function(element) { items.push(element); }; //移除栈顶的元素,同时返回被移除的元素 this.pop = function() { return items.pop(); }; //返回栈顶的元素,不对栈做任何修改 this.peek = function() { return items[items.length - 1]; }; //如果栈里没有任何元素就返回true,否则返回false this.isEmpty = function() { return items.length == 0; }; //移除栈里的所有元素 this.clear = function() { items = []; }; //返回栈里的元素个数,和数组的length很像 this.size = function() { return items.length; }; //返回栈里的内容 this.print = function() { //return items.toString(); return items; }; }
使用该方法:
var stack = new Stack(); console.log(stack.isEmpty()); //true stack.push(1); stack.push(3); stack.push(5); stack.push(7); console.log(stack.peek()); //7 console.log(stack.print()); //[1, 3, 5, 7] console.log(stack.isEmpty()); //false console.log(stack.size()); //4 console.log(stack.pop()); //7 console.log(stack.peek()); //5 console.log(stack.print()); // [1, 3, 5]
2.基于该方法实现十进制数转换为二进制数
//十进制转换为二进制 function divideBy2(decNumber) { var remStack = new Stack(), rem, binaryString = ''; while (decNumber > 0) { rem = Math.floor(decNumber % 2); remStack.push(rem); decNumber = Math.floor(decNumber / 2); } while (!remStack.isEmpty()) { binaryString += remStack.pop().toString(); } return binaryString; } var decNumber = 10; console.log(decNumber + '转换为二进制数为:' + divideBy2(decNumber)); //10转换为二进制数为:1010
3.基于该方法实现十进制数转换为二/八/十六进制数
//十进制转换为任意进制 function baseConverter(decNumber, base) { var remStack = new Stack(), rem, baseString = '', digits = '0123456789ABCDEF'; while(decNumber > 0) { rem = Math.floor(decNumber % base); remStack.push(rem); decNumber = Math.floor(decNumber / base); } while(!remStack.isEmpty()) { baseString += digits[remStack.pop()]; } return baseString; } var decNumber = 552; var base = 16; console.log(decNumber + '转换为' + base + '进制数为:' + baseConverter(decNumber, base)); //552转换为16进制数为:228
相关文章
- .Net Core ORM选择之路,哪个才适合你 通用查询类封装之Mongodb篇 Snowflake(雪花算法)的JavaScript实现 【开发记录】如何在B/S项目中使用中国天气的实时天气功能 【开发记录】微信小游戏开发入门——俄罗斯方块
- C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法
- 前端开发面试题—JavaScript闭包
- JavaScript - Vue / React 实现网页标题文字滚动效果,在浏览器标题栏页签选项卡上进行滚动的特效(详细示例源代码)前端所有技术栈通用,适用于任何前端项目!
- 利用开源HTML5引擎lufylegend.js结合javascript实现的五子棋人机对弈
- 【JavaScript】Understanding callback functions in Javascript
- 【JavaScript】理解与使用Javascript中的回调函数
- JavaScript里实现继承的几种方式
- JavaScript-每隔5分钟执行一次ajax请求的实现方法
- 《编写可维护的JavaScript》——1.6 命名
- 基于JavaScript实现模态窗口插件(支持回调)
- 基于JavaScript+Koa2实现 Echarts 电商平台数据可视化大屏全栈【100010415】
- 基于JavaScript 实现拼图游戏【100010247】
- Django使用JavaScript实现JWT用户登陆、登出
- 使用JavaScript实现cookie的设置、读取、删除
- 华为OD机试 - 射击比赛(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】
- 深入理解JavaScript系列(18):面向对象编程之ECMAScript实现(推荐)
- javascript中uber实现子类访问父类成员
- CEF3研究(四)之javascript集成