js 实现栈
function Stack() {
this.dataStore = [];
this.top = 0;
this.push=push;
this.pop=pop;
this.peek=peek;
this.length=length;
this.clear=clear;
}
// 入栈
function push(item) {
this.dataStore[this.top++]=(item);
}
// 出栈,返回栈顶元素,并且将元素的栈顶位置-1
function pop() {
return this.dataStore[this.top--]
}
// 预览顶端元素
function peek(){
return this.dataStore[this.top-1];
}
// 返回栈的长度
function length(){
return this.top;
}
// 清空栈
function clear(){
this.top = 0;
}
//栈的应用实例:
//num要转换的数字 base 要转换为几进制
function convertNum(num,base){
var s=new Stack()
while(num>0){
console.log(num);
s.push(num%base);
num= Math.floor(num/=base);
}
var res="";
while(s.length()>0){
res+=s.pop();
}
return res;
}
js 实现栈的更多相关文章
- Flask Vue.js全栈开发
Flask Vue.js全栈开发的 最新完整代码 及使用方式 本系列的最新代码及使用方式将持续更新到: http://www.madmalls.com/blog/post/latest-code/ 1 ...
- js模拟栈
栈:先入后出,后入先出 链表:先入先出,后入后出 下面使用js实现栈 var Stack = (function(){ var items = new WeakMap(); //先入后出,后入先出 c ...
- Node.js最新技术栈之Promise篇
前言 大家好,我是桑世龙,github和cnodejs上的i5ting,目前在天津创业,公司目前使用技术主要是nodejs,算所谓的MEAN(mongodb + express + angular + ...
- 【Todo】React & Nodejs学习 &事件驱动,非阻塞IO & JS知识栈:Node为主,JQuery为辅,Bootstrap & React为辅辅,其他如Angular了解用途即可
JS知识栈:Node为主,JQuery为辅,Bootstrap & React为辅辅,其他如Angular了解用途即可 今天在学习ReactJS和NodeJS,看到关于ReactJS的这篇文章 ...
- 数据结构与算法 --- js描述栈
js描述栈及栈的使用 栈的特性就是只能通过一端访问,这一段就是叫做栈顶.咖啡馆内的一摞盘子就是最形象的栈的例子: 根据栈的特性,就可以定义栈的一些特殊属性和方法;用js的描述栈的时候底层数据结构用的是 ...
- js模拟栈---汉诺塔
var Stack = (function(){ var items = new WeakMap(); //先入后出,后入先出 class Stack{ constructor(){ items.se ...
- Node.js 全栈开发(一)——Web 开发技术演化
这些年一直不断接触学习 Node 技术栈,个人的技术开发学习兴趣也越来越倾向 node 流.也许是由于英语的关系,也许是因为墙增加了学习国外一手资料的难度,加上现在流行的 web 开发技术并不太容易上 ...
- js实现栈
栈是一种先进后出的特殊线性表结构,存储上分链式存储和顺序存储两种方式 链式存储: function LinkedStack() { let Node = function (ele) { this.e ...
- [js]数组栈和队列操作
写在前面 在项目中,对数组的操作还是比较常见的,有时候,我们需要模拟栈和队列的特性才能实现需求,这里记录一下这个知识点. 栈 栈(stack)又名堆栈,它是一种运算受限的线性表.其限制是仅允许在表的一 ...
- js 实现栈的结构
js实现一个栈的数据结构 首先了解一下什么是栈,栈是一个后进先出的一种数据结构,执行起来效率比较高. 对于栈主要包括一些方法,弹出栈pop(),弹出栈顶元素,并删除该元素:压入栈push(),向栈中压 ...
随机推荐
- [Flex] PopUpButton系列 —— 控制弹出菜单的透明度、可用、可选择状态
<?xml version="1.0" encoding="utf-8"?><!--控制弹出菜单的透明度.可用.可选择状态 PopUpButt ...
- JAVA中集合类的使用
总的说来常用的集合类有两大类:Collection 和 Map 1) Collection接口有List和Set两大类子接口,List有ArrayList.LinkedList.Vector子类,Se ...
- 荣耀6 Plus 的屏幕大小pt计算方法
使用 gomobile 检测 华为荣耀 6 Plus 的屏幕大小为: 1080*1776 px ; 162pt*266.40pt ; 每pt像素个数:6.666665个. 而实际的数据是: 主 ...
- Fedora 14配置vsftp服务步骤
Fedora 14配置vsftp服务步骤:1:检查Fedora14是否安装了vsftp服务 用rpm -qa|grep vsftp命令检查是否安装了vsftp服务,如果安装了,会显示安装好的版本 ...
- SparkSQL External Datasource简易使用之CSV
下载源码&编译: git clone https://github.com/databricks/spark-csv.git sbt/sbt assembly Maven GAV: group ...
- 通过 adb命令发送广播
我们经常用到模块设备发送广播,此处记录一下: 首先进入adb 使用命令: adb shell 发送广播 例: am broadcast -a action.com.custom.broadcast.q ...
- android 如何设置背景的透明度
半透明<Button android:background="#e0000000" ... />透明<Button android:background=&quo ...
- 设计模式——适配器模式(Adapter Pattern)
解决的问题: 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作.比如说我的hp笔记本,美国产品,人家美国的电压是110V的,而我们中国 ...
- extjs grid 分页
在使用extjs创建带分页功能的 grid 如下: 1.创建一个模型 // 创建算定义模型 模型名称 User Ext.define('User', { extend: 'Ext.data.Model ...
- js 数组对象,数组的使用
var a =new Array(1,2,3,4,'a','b','c',{x:1,y:2}); alert(a[7].x); //数组之中可以定义数组. var b=['a','b','c']; c ...