位置: 编程技术 - 正文

JavaScript数据结构与算法之队列原理与用法实例详解(javascript数据结构与算法项目计算找零)

编辑:rootadmin

推荐整理分享JavaScript数据结构与算法之队列原理与用法实例详解(javascript数据结构与算法项目计算找零),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript数据结构与算法百度云视频资源,javascript数据结构与算法项目电话号码检查器,javascript数据结构有哪些,javascript数据结构与算法第三版,javascript数据结构与算法第三版,javascript数据结构与算法第三版pdf下载,javascript数据结构与算法 pdf,javascript数据结构与算法,内容如对您有帮助,希望把文章链接给更多的朋友!

本文实例讲述了JavaScript数据结构与算法之队列原理与用法。分享给大家供大家参考,具体如下:

队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素。队列用于存储按顺序排列的数据,先进先出,这点和栈不一样(后入先出)。在栈中,最后入栈的元素反而被优先处理。我们现在可以把队列想象对我们去餐馆吃饭的情景,很多人排队吃饭,排在最前面的人先打饭。新来的人只能在后面排队。直到轮到他们为止。

一:对队列的操作

队列有2种主要的操作,向队尾中插入新元素enqueue()方法和删除队列中的队首的元素的dequeue()方法,另外我们还有一个读取队头的元素,这个方法我们可以叫front()方法。该方法返回队头元素等等方法。

看到如上描述,我们很多人可能会想到数组,数组里面也有2个方法和上面的方法功能类似,数组中push()方法也是往数组后面加入新元素,数组中shift()方法则可以删除数组里面的第一个元素。如下代码:

下面我们可以使用上面的数组中的push()和shift()的2个方法来封装我们的队列Queue类;

1. 我们可以先定义一个构造函数Queue类,如下:

如上:this.dataStore = []; 空数组时存储队列中所有的元素的。

2. 向队尾中添加一个元素方法如下:

3. 删除队首的元素如下:

4. 读取队首的元素如下:

5. 读取队尾的元素如下:

6. 显示队列中的所有元素

7. 判断队列是否为空如下:

下面是完整的JS代码如下:

我们现在可以对以上代码测试下:如下:

JavaScript数据结构与算法之队列原理与用法实例详解(javascript数据结构与算法项目计算找零)

二:使用队列对数据进行排序

比如对于 0 ~ 的数字进行排序,原理是:先对个位上的数字进行排序一次,然后对十位上的数字再进行排序一次。每个数字根据对应位上的数值被分在不同的盒子里面,然后对于个位上的数字采用除余数的方法,对于位上的数字采用除法的方法,那么这种排序叫做 “基数排序”. 但是它不是最快的排序方法,但是它描述了一些有趣的队列使用方法。

比如如下数组:

1. 经过基数排序--个位排序后,数字被分配在不同的盒子里面。(在JS里面,我们可以分配在不同的队列Queue实例类里面)。如下

根据盒子的顺序,对数字第一次个位排序后结果如下:

2. 然后根据十位上的数值再将上次排序后的结果分配到不同的盒子中。如下:

最后,将盒子中的数字取出,组成一个新的列表,该列表即为排序好的数字。如下:

即可生成如下:

如上使用队列列表盒子,可以实现这个算法,我们需要个队列,每个队列对应一个数字,将所有队列保存在一个数组中,使用取余和除法操作决定个位和十位。算法的剩余部分将数字加入相应的队列,根据个位数值进行重新排序,然后再根据十位上的数值进行排序,结果加入排序好的数字。

下面根据个位或十位上的数值,将数字分配到相应队列的函数。

下面是从队列中收集数字的函数如下:

由于上面省略了很多步骤,可能描述的不是很清楚,我们现在先来看看流程图,结合流程图,最后结合JS的所有代码就可以理解"基数排序的"基本原理了;下面我们可以看看如下的流程图;

最后是所有的JS代码如下:

下面的是对 "基数排序的" JS代码进行测试;如下代码:

如上测试代码 大家可以运行下 就可以看到排序后的效果!

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数据结构与算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。

初探js和简单隐藏效果的实例 js:在页面中用户操作页面时发生的效果都是Js功劳。操作有点击,移入,和移出等。。。例1:通过display隐藏盒子!DOCTYPEhtmlhtmlheadmetacharset="utf-8"/title/titles

bootstrap-Treeview实现级联勾选 本文实例为大家分享了bootstrapTreeview实现级联勾选的具体代码,供大家参考,具体内容如下核心方法varnodeCheckedSilent=false;functionnodeChecked(event,node){if(nodeChe

基于Bootstrap实现城市三级联动 本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下HTML代码部分divclass="form-group"divclass="col-sm-2text-center"省/divdivclass="col-

标签: javascript数据结构与算法项目计算找零

本文链接地址:https://www.jiuchutong.com/biancheng/369860.html 转载请保留说明!

上一篇:chorme 浏览器记住密码后input黄色背景处理方法(两种)(chrome浏览记录保存多久)

下一篇:bootstrap-Treeview实现级联勾选

  • sql语句中单引号嵌套问题(一定要避免直接嵌套)(sql语句中单引号是什么)

    比如下面例子是存储过程里查询时的语句示例

    红色部分是会报错的,应该写成 @condition= 'ROOMTYPElike ‘ ‘%标准间%' ‘ ', 蓝色部分不是双引号,而是两个单引号

    谈谈sqlserver自定义函数与存储过程的区别 一、自定义函数:1.可以返回表变量2.限制颇多,包括不能使用output参数;不能用临时表;函数内部的操作不能影响到外部环境;不能通过select返回结果

    深入分析SqlServer查询计划 对于SQLServer的优化来说,优化查询可能是很常见的事情。由于数据库的优化,本身也是一个涉及面比较的广的话题,因此本文只谈优化查询时如何看懂SQ

    sql 判断字符串中是否包含数字和字母的方法 判断是否含有字母selectPATINDEX('%[A-Za-z]%',‘ads')=0(如果存在字母,结果1)判断是否含有数字PATINDEX('%[0-9]%',‘sdf" class="img-responsive" alt="sql语句中单引号嵌套问题(一定要避免直接嵌套)(sql语句中单引号是什么)">

    sql语句中单引号嵌套问题(一定要避免直接嵌套)(sql语句中单引号是什么)

  • XP系统提示QQprotect.exe损坏文件的解决方法图文教程

    XP系统提示QQprotect.exe损坏文件的解决方法图文教程

  • CentOS使用上一条命令的所有参数详解(centos which)

    CentOS使用上一条命令的所有参数详解(centos which)

  • WinCtlAdAlt.exe - WinCtlAdAlt是什么进程

    WinCtlAdAlt.exe - WinCtlAdAlt是什么进程

  • Win8系统如何使用快捷键强制结束应用程序(win8系统怎么直接进入桌面)

    Win8系统如何使用快捷键强制结束应用程序(win8系统怎么直接进入桌面)

  • Win10 build 10240有

    Win10 build 10240有"启用快速启动"功能吗?如何开启和关闭这个功能?

  • android游戏之SurfaceView(surf apk android)

    android游戏之SurfaceView(surf apk android)

  • jquery无限级联下拉菜单简单实例演示(jquery width)

    jquery无限级联下拉菜单简单实例演示(jquery width)

  • 终止经营的会计处理
  • 固定资产丢失
  • 电子税务局怎么登录
  • 收到的其他与筹资活动有关的现金包括
  • 国内旅客运输服务电子普通发票
  • 个人厂房租赁税率是多少
  • 银行利息怎么算?
  • 投资款多投了怎么办
  • 公司注销税务需要交多少钱
  • 收到小微企业补贴如何做账
  • 税务审计什么时候进行
  • 企业增值税税负率与利润率的关系
  • 专票的有效期是什么意思
  • 软件服务费是什么
  • 汇算清缴补开票交税怎么写摘要?
  • 积分兑换现金消费的会计分录
  • 商贸公司进货的会计分录
  • 软件开发公司怎么选择
  • 发放的离职补偿金怎么做账
  • 申请银行汇票手续费记账凭证
  • 没有认缴到位的股票
  • 企业内部领用产品会计处理
  • 临时文件夹在哪个位置
  • windows10显示文件格式
  • 三星笔记使用攻略
  • 冲销货款的会计分录
  • 外贸企业出口退税计算
  • 业务招待费税前扣除标准按照发生额的60%扣除
  • 高新技术企业加计5%
  • explore.exe
  • 企业生产车间发生的固定资产折旧费属于制造费用
  • 银行日记账本月没有发生业务
  • Sandilands省级森林中被白霜覆盖的番红花,加拿大曼尼托巴 (© Jaynes Gallery/Danita Delimont)
  • 股权激励的账务如何处理
  • javascript生成器
  • java幂等性是什么
  • 个人独资企业如何做账
  • web前端视频教程全套
  • 工程没结算能否竣工验收
  • 增值税专用发票的税率是多少啊
  • python字典keys方法 顺序
  • 营业外支出增加记借方还是贷方
  • mysql 5.7.1
  • 社保缴费基数和医保缴费基数一样吗
  • 研发支出资本化计入什么科目
  • 5万元买二手车什么品牌比较好
  • 平行结转分步法各步骤的费用
  • 房产税土地使用税会计分录
  • 公司社保外包了,没给我社保卡怎么办?
  • 利润分配和所有者权益的关系
  • 背书转让的电子汇票怎么查询
  • 开出发票上有折扣的怎么入账?
  • 代金券的利弊有哪些方面
  • 担保贷款中的特殊形式
  • 其他流动资产为什么包括应交增值税
  • 一个企业建账需要注意些什么
  • mysql分页效率
  • 数据库中自动增长
  • sql server自动生成id
  • 流言:Win9或终止32位系统 加速64位平台
  • windows无法删除软件怎么办
  • window10怎么启用net 3.5
  • mac电脑系统安装
  • win7桌面图标无法拖到任务栏
  • windows8 enterprise
  • 苹果Mac系统怎么切换输入法
  • 安装win 7系统
  • windows7脚本编程和命令行指南
  • win10应用商店更新比蜗牛还慢
  • linux安装unixodbc
  • 有关于月亮的诗句
  • shell脚本判断命令是否执行成功
  • python中验证码校验
  • python编码大全
  • 英特尔在哪打开
  • 编写javascript代码
  • 税收预测的内容
  • 建筑劳务个人所得税申报
  • 重庆税务局发票作废
  • 中国一年能收多少税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设