js 数据结构-栈与队列
2023-09-11 14:16:39 时间
/*
【客栈的盘子/月井里的货物,后进先出】
栈顶:最先入口/出口的位置
栈底:最慢最晚出栈的位置
*/
function Stack() { var item = []; //推(将货物推入月井) this.push = function(e) { item.push(e); } //弹(将月井最上方的货物搬出来) this.pop = function() { return item.pop(); } //查(查看月井最上方的货物,但不搬出来) this.peek = function() { return item[item.length - 1]; } //空 this.isEmpty = function() { return item.length == 0; } //量 this.size = function() { return item.length; } //清 this.clear = function() { item = []; } //调 this.price = function() { console.log(item.toString()); } //拼 this.toString = function() { return item.toString(); } }
十进制转二进制。任意进制转二进制
/* 十进制转二进制 原理是将一个大于0的整数,每次都除以2并且记录余数,直到余数为0为止。然后将记录余数叠加即为二进制 */ function divideBy2(decNumber) { var remStack = new Stack(); var rem; var binaryString; while(decNumber > 0) { rem = Math.floor(decNumber % 2); remStack.push(rem); decNumber = Math.floor(decNumber / 2); } if(!remStack.isEmpty()) return remStack.toString(); } function baseConverter(decNumer,base) { var remStack = new Stack(); var rem; var binaryString; var digits = '0123456789ABCDEF'; while(decNumber > 0) { rem = Math.floor(decNumber % base); remStack.push(rem); decNumber = Math.floor(decNumber / base); } if(!remStack.isEmpty()) { binaryString += digits[remStack.pop()]; } return binaryString; }
队列
/* 队列,先进先出 */ function Queue() { var item = []; //推 this.enqueue = function(e) { item.push(e); } //shift this.dequeue = function() { return item.shift(); } //抽 this.front = function() { return item[0]; } //空 this.isEmpty = function() { return item.length == 0; } //量 this.size = function() { return item.length; } //清 this.clear = function() { item = []; } //调 this.price = function() { console.log(item.toString()); } //拼 this.toString = function() { return item.toString(); } }
相关文章
- JS+CSS3 360度全景图插件 - Watch3D.js
- JS框架_(JQuery.js)纯css3进度条动画
- JS框架_(coolShow.js)图片旋转动画特效
- JS框架_(Popup.js)3D对话框窗口插件
- JS框架_(JQuery.js)带阴影贴纸标签按钮
- JS框架_(JQuery.js)夜晚天空满天星星闪烁动画
- 【华为云技术分享】【一统江湖的大前端(8)】matter.js 经典物理
- baguetteBox.js响应式画廊插件(纯JS)
- 当当网上书店头部和尾部——JS源码
- js失效问题
- js String Trim函数
- Knockout.Js官网学习(click绑定)
- [JS Pattern] Provider Pattern
- 流媒体测试笔记记录之————解决问题video.js 播放m3u8格式的文件,根据官方的文档添加videojs-contrib-hls也不行的原因解决了
- [Node.js] process.nextTick for converting sync to async
- [js]uploadify结合jqueryUI弹出框上传,js中的冒出的bug,又被ie坑了
- JS 回车提交,兼容IE、火狐、Opera、Chrome、Safari……
- Atitit 研发体系 codelib 代码库的建设 目录 1. 概念与组成2 1.1. Java代码2 1.2. Js代码2 1.3. H5 代码 js+css+htm+txt2 1.4.
- 华为OD机试 - 最小调整顺序次数、特异性双端队列(Java & JS & Python)
- js监听视频播放结束demo效果示例(整理)
- 原生js实现随机验证码HTMl-JS
- 编写第一个node.js实例
- Webix UI 10.0 最佳 JS 库创建丰富的用户界面 Webix UI
- js判断对象类型
- JS:使用Mock.js生成随机数据,拦截 Ajax 请求
- babel配置项目目录支持转换es6语法,引入非项目目录js后,引入Js转换无效
- 【JS高级】js之闭包对象_04
- 前端必备技能知识:JS导出Blob流文件为Excel表格、Vue.js使用Blob的方式实现excel表格的下载(流文件下载)