js 数据结构-栈与队列
/*
【客栈的盘子/月井里的货物,后进先出】
栈顶:最先入口/出口的位置
栈底:最慢最晚出栈的位置
*/
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 数据结构-栈与队列的更多相关文章
- 数据结构和算法(Golang实现)(14)常见数据结构-栈和队列
栈和队列 一.栈 Stack 和队列 Queue 我们日常生活中,都需要将物品排列,或者安排事情的先后顺序.更通俗地讲,我们买东西时,人太多的情况下,我们要排队,排队也有先后顺序,有些人早了点来,排完 ...
- JavaScript数据结构——栈和队列
栈:后进先出(LIFO)的有序集合 队列:先进先出(FIFO)的有序集合 --------------------------------------------------------------- ...
- [js]数组栈和队列操作
写在前面 在项目中,对数组的操作还是比较常见的,有时候,我们需要模拟栈和队列的特性才能实现需求,这里记录一下这个知识点. 栈 栈(stack)又名堆栈,它是一种运算受限的线性表.其限制是仅允许在表的一 ...
- c数据结构 -- 栈与队列
栈和队列 ·栈和队列是两种常用的.重要的数据结构 ·栈和队列是限定插入和删除只能在表的“端点”进行的线性表 栈 只能在队尾插入,只能在队尾删除 -- 后进后出 表尾称为栈顶:表头称为栈底 插入元素到栈 ...
- C数据结构-栈和队列,括号匹配举例---ShinePans
1.栈和队列是两种特殊的线性表 运算操作被限定仅仅能在表的一端或两端插入,删除元素,故也称它们为限定的线性表结构 2.栈的基本运算 1).Stackinit(&s) 构 ...
- JS数据结构与算法-队列结构
队列结构 一.认识队列 受限的线性结构: 我们已经学习了一种受限的线性结构:栈结构. 并且已经知道这种受限的数据结构对于解决某些特定问题,会有特别的 效果. 下面,我们再来学习另外一个受限的数据结构: ...
- &10 基本数据结构——栈,队列和链表
#1,栈(stack) 定义[来自百度]:栈(stack)又名堆栈,它是一种运算受限的线性表.其限制是仅允许在表的一端进行插入和删除运算.这一端被称为栈顶,相对地,把另一端称为栈底.向一个栈插入新元素 ...
- Python数据结构——栈、队列的实现(二)
1. 一个列表实现两个栈 class Twostacks(object): def __init__(self): self.stack=[] self.a_size=0 self.b_size=0 ...
- Python数据结构——栈、队列的实现(一)
1. 栈 栈(Stack)是限制插入和删除操作只能在一个位置进行的表,该位置是表的末端,称为栈的顶(top).栈的基本操作有PUSH(入栈)和POP(出栈).栈又被称为LIFO(后入先出)表. 1.1 ...
随机推荐
- IOS开发-提升app性能的25条建议和技巧
前言 这篇文章介绍了作者开发工作中总结的25个iOS开发tips, 多年之前读过这篇文章.收益良多,基本每一个tips在我的应用开发过程中都使用过.今天把这篇文章又一次整理转发下,与大家一起学习,不论 ...
- E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
sudo rm /var/lib/dpkg/locksudo dpkg --configure -a
- 宏定义偷懒型set,get
之前看到有这么一个写法 #define DEF_SET_GET(varType,varName,funName) \ private : varType varName; \ public : voi ...
- ArcGIS高程Z值的去除方法
在ArcGIS中,我们常用的几何类型有点.线.面.体(体,在涉及三维的情况下使用),但在这之外,可能会遇到带ZM的类型,如图所示,面ZM,它与面类似,但比面多两个字段. 在编辑中查看草图属性可看到Z值 ...
- 关于ASP.NET MVC中Form Authentication与Windows Authentication的简单理解
一般互联网应用,如人人网,微博,都是需要用户登录的,如果用户不登陆,就不能使用此网站.所以,这里都是用FormAuthentication,要求用户填写用户名与密码,然后登录成功后,FormAuthe ...
- 分享几个.NET 下的计划任务组件
Quartz http://www.quartz-scheduler.net/(现项目在使用,可以看我之前的文章) Hangfire http://hangfire.io/ Install-Packa ...
- SpingBoot:Unregistering JMX-exposed beans on shutdown
运行之后控制台输出“Unregistering JMX-exposed beans on shutdown”原因为:SpringBoot内置Tomcat没有正常启动,加入spring-boot-sta ...
- Fiddler 扩展编程——oSession相关方法
// 修改session中的显示样式 oSession["ui-color"] = "orange"; // 移除http头部中的MQB-X5-Refer ...
- JavaScript match()方法使用
1.JavaScript match() 方法说明http://www.w3school.com.cn/jsref/jsref_match.asp 写法: stringObject.match(sea ...
- TopCoder SRM624 BuildingHeightEasy 题解
本题题意就是求有一组建筑物,问把这些建筑物的M个都统一到同一高度.须要的最小改动高度是多少? 题意隐含的意思就是由于是建筑物,所以不能降低,仅仅能添加了. 本题能够使用暴力搜索,由于数据量少. 可是事 ...