数据结构与算法 --- js描述队列
js描述队列
- 队列的特性是只能在队尾插入元素,在队首删除元素,先进先出;
- 队列被用在很多地方,比如提交操作系统执行的一系列进程,打印任务池,模拟现实中的排队;
//队列类
function Queue (){
this.dataSource=[];
this.enqueue=enqueue;
this.dequeue=dequeue;
this.front=front;
this.back=back;
this.toString=toString;
this.empty=empty;
}
//向对尾添加元素
function enqueue(element){
this.dataSource.push(element);
}
//删除队首元素
function dequeue(){
return this.dataSource.shift();
}
//返回队首元素
function front (){
return this.dataSource[0];
}
//返回队尾元素
function back (){
return this.dataSource[this.dataSource.length-1];
}
//将所有元素转化为字符串
function toString(){
var str='';
for(var i=0;i<this.dataSource.length;i++){
str+=this.dataSource+"\n";
}
return str;
}
//判断队列是否为空
function empty(){
if(this.dataSource.length==0){
return true;
}else{
return false;
}
}
队列的实际运用
- 解决男女配对跳舞问题
var people=[
{
name:'frank',
sex:'man',
},{
name:'rose',
sex:'woman',
},{
name:'even',
sex:'man',
},{
name:'xiaowang',
sex:'man',
},{
name:'xiaoliu',
sex:'man',
},{
name:'xiaohua',
sex:'woman',
},{
name:'xiaoqiang',
sex:'man',
},{
name:'xiaoli',
sex:'woman',
},{
name:'xiaomei',
sex:'woman',
}
];
function Dencer(name,sex){
this.name=name;
this.sex=sex;
}
function getManDencer(){
var man=new Queue();
var woman=new Queue();
for(var i=0;i<people.length;i++){
if(people[i].sex=='man'){
var manDencer=new Dencer(people[i].name,people[i].sex);
man.enqueue(manDencer);
}else{
var womanDencer=new Dencer(people[i].name,people[i].sex);
woman.enqueue(womanDencer);
}
}
dancer(man,woman);
}
function dancer(man,woman){
while (!man.empty() && !woman.empty()){
manPeople=man.dequeue();
womanPeople=woman.dequeue();
console.log(manPeople.name+">>>>>>>>>>>>>>"+womanPeople.name);
};
}
getManDencer()
github:https://github.com/Frankltf/js-queue/tree/features-one
数据结构与算法 --- js描述队列的更多相关文章
- 数据结构与算法Java描述 队列
package com.cjm.queue; /** * 数据结构与算法Java实现 队列 * * @author 小明 * */ public class Myqueue { private Nod ...
- 数据结构与算法 --- js描述栈
js描述栈及栈的使用 栈的特性就是只能通过一端访问,这一段就是叫做栈顶.咖啡馆内的一摞盘子就是最形象的栈的例子: 根据栈的特性,就可以定义栈的一些特殊属性和方法;用js的描述栈的时候底层数据结构用的是 ...
- 数据结构与算法 --- js描述集合
js描述集合 function Set(){ this.datasource=[]; this.add=add; this.remove=remove; //this.size=size; //thi ...
- 数据结构与算法JavaScript描述——队列
注:澄清一个bug: /** * 删除队首的元素: */ function dequeue(){ return this.dataStore.shift(); } 应该有return: 队列是一种 ...
- 《数据结构与算法JavaScript描述》
<数据结构与算法JavaScript描述> 基本信息 作者: (美)Michael McMillan 译者: 王群锋 杜欢 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9 ...
- 数据结构与算法JS实现
行解算法题,没错,就是这么方便. 当然也可以使用 Node.js 环境来执行,具体参考Node.js官方文档即可. 二 对象和面向对象编程 js中5种数据类型,并没有定义更多的数据类型,但是运用j ...
- 翻阅《数据结构与算法javascript描述》--数组篇
导读: 这篇文章比较长,介绍了数组常见的操作方法以及一些注意事项,最后还有几道经典的练习题(面试题). 数组的定义: JavaScript 中的数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性 ...
- 数据结构与算法javascript描述
<数据结构与算法javascript描述>--数组篇 导读: 这篇文章比较长,介绍了数组常见的操作方法以及一些注意事项,最后还有几道经典的练习题(面试题). 数组的定义: JavaScri ...
- 数据结构与算法C++描述学习笔记1、辗转相除——欧几里得算法
前面学了一个星期的C++,以前阅读C++代码有些困难,现在好一些了.做了一些NOI的题目,这也是一个长期的目标中的一环.做到动态规划的相关题目时发现很多问题思考不通透,所以开始系统学习.学习的第一本是 ...
随机推荐
- linux中的文件类型标记方法
在ls -l显示的详细信息中有以下信息: -rw-r--r-- drwxr-xr-x 一共10个字符,第一个字符表示文件类型,后面9个字符分成3组表示文件权限.前三个表示属主(拥有者)对文件的权限,中 ...
- mac如何查看已连接wifi的密码
可以通道mac自带的“钥匙串访问”功能查看.选择需要查询的wifi名称,右击选择“将密码拷贝到剪贴板”,输入管理员密码后,密码就拷贝好了. 找个地方粘贴即可看到密码
- springboot前后端分离项目redis做验证码及用户信息存储验证长时间不操作失效问题解决
1.错误回显:Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException: MISCO ...
- $bzoj3872\ [Poi2014]\ Ant\ colony$ 二分+$dp$
正解:二分+$dp$ 解题报告: 传送门$QwQ$ 一年过去了依然没有头绪,,,$gql$的$NOIp$必将惨败了$kk$. 考虑倒推,因为知道知道除数和答案,所以可以推出被除数的范围,然后一路推到叶 ...
- $bzoj4722$ 由乃 搜索
正解:搜索 解题报告: 传送门$QwQ$ 首先发现长度为$len$的子集的值域为$[0,v\cdot len+len]$,数量为$2^{len}$.所以当$2^{len}\geq v\cdot len ...
- $loj\ 6045$ [雅礼集训 $2017\ Day8$] 价 网络流
正解:网络流 解题报告: 传送门$QwQ$ 这题还,挺有趣的我$jio$得. 考虑依然先是照着最小割的模子建图呗,然后从意义上来分析,割一条边就相当于不吃一种减肥药/买一种药材.由已知得,买的药材数量 ...
- Theia——云端和桌面版的IDE
Theia是一个利用最新的web技术开发的支持云端和桌面运行的类似IDE的产品,它是一个可扩展的平台,并且全面支持多语言. 目标 建立一个可搭建类似IDE产品的平台 为终端用户提供完整的多语言IDE( ...
- 「Luogu」[JSOI2007]字符加密 解题报告
题面 思路: 作为一个后缀数组的初学者,当然首先想到的是后缀数组 把\(s\)这个串首尾相接,扩展为原来的两倍,就能按后缀数组的方法处理 证明: 神仙一眼就看出这是后缀的裸题,我这个蒟蒻想了半天想不出 ...
- 从头学pytorch(十四):lenet
卷积神经网络 在之前的文章里,对28 X 28的图像,我们是通过把它展开为长度为784的一维向量,然后送进全连接层,训练出一个分类模型.这样做主要有两个问题 图像在同一列邻近的像素在这个向量中可能相距 ...
- WPF 给Button按钮加小图标图片Image
前言:当WPF项目后台完成到一定程度的时候,就可以对XAML前端进行美化啦,个人认为XAML前端还是挺有意思的. 下面举一个Button加过小图标后的例子: 是不是比生硬的文字看来更人性化了呢? 不多 ...