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 ...
随机推荐
- Cognos 报表在列表上面显示汇总
一直以来,Cognos Report Studio设计报表的时候,汇总默认显示在列表下方: 1如图,拖一个列表 2运行如下,数据显示正常按日期排序 3选中订单笔数.订单金额,添加自动汇总 4:运行,可 ...
- ystem.Windows.Forms.SplitContainer : ContainerControl, ISupportInitialize
#region 程序集 System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ...
- [Algorithm] Trie data structure
For example we have an array of words: [car, done, try, cat, trie, do] What is the best data structu ...
- SICP-练习2.17
[问题] 请定义出过程last-pair.它返回仅仅包括给定(非空)表里最后一个元素的表: (last-pair (list 23 72 149 34)) (34) [分析] last-pair须要处 ...
- PHPCMS增加投票选项代码
<script src="jquery-1.10.1.js"></script> <tr> <th width="20%&quo ...
- Discuz常见小问题-如何修改网站标题title
在全局-SEO设置中,找到论坛的title修改即可
- Opera Unite如何架设自己的网站
1使用Opera的File Sharing可以共享你的文件 2使用Opera的Stream media可以共享你的视频,有些格式甚至可以直接在浏览器端打开(比如MOV,但是需要安装Quicktime的 ...
- CAD批量合并文件
要求:将整饰完成504幅单独的宗地图合并成一张总图,合并后,去掉其他要素,只保留毕合的权属线. 解决: 1.合并dwg文件,除了手工粘贴复制外,最先想到的是插入块,即用Insert命令插入,测试结果可 ...
- curl库的使用,32-64
http 使用curl发起https请求 http://www.cnblogs.com/ainiaa/archive/2011/11/08/2241385.html Curl配置及编译: CFLAGS ...
- Uubntu14.04下 Hadoop集群环境搭建
1机器信息 master192.168.3.10 hadoop/ hadoop slave1192.168.3.11 hadoop/ hadoop slave2192.168.3.12 hadoop/ ...