数据结构与算法 JavaScript实现 —— 队列(模拟发票,按票价排队)

上次利用了JavaScript实现了具有优先权的队列,但是想做一下能够看到的,能够操作的

所以根据上一次的基础实现一个模拟发票,并按票价排队的程序。

先上效果图:

    

    按提交,安排票位:

    

    乘客拿了票,胡乱排队,这时候按排队,让他们根据票价排队,牌价高者优先(以上方块里的数字为票价)

    

 

那么该怎么实现呢,

queue.js 负责按照优先权来排序队列

sort.js 负责发票,并调用queue.js来排序

main.js 负责在页面根据票数来安排位置,显示操作

 

代码如下:

queue.js

    1.数组items用于存储队列中的项;

    2.isEmpty方法用于判断队列是否为空;

    3.QueueElement类用于读取票价,并根据票价来匹配优先值;

    4.enqueue方法用于根据优先权来排序队列;

    5.print方法用于返回队列。

sort.js

    1.数组arr用于存储已拿到票的元素;

    2.seatQueue用于存储queue.print()返回的队列,即已排序好的队列;

    3.isSuit用于判断输入的作为数是否符合要求,符合的话返回demand为true;

    4.sortSeat方法用于安排票,supper为一等座,medium为二等座,general为三等座。分别按1/6,2/6, 3/6来安排坐票数;

    5.SeatObj类用于存储每个对象的票价、优先值、是否已领票;

    调用sortSeat方法,生成一个queue对象。quantity为票数,调用isSuit方法判断sortSeat传进的票数是否符合要求,

符合则成票数。

    根据票数生成seatObj对象,并初始化它,把它添加到数组arr。

    遍历票数,随机发票,得到票让对象的on属性为"on",表示已拿到票。

    遍历票数,把数组arr每一项的price属性添加到queue对象中排序。

    把queue.print()的结果返回给seatQueue。

main.js

1.seatNum 为输入框输入的票数;

2.submit为提交按钮;

3.lineUp为排队按钮;

4.plane为显示排序的地方;

5.sorted为已排序的票。

    根据票数来生成作为,采用网格布局,让它自适应。

    生成sort对象,sort对象调用sortSeat方法。

    把sort赋值给sorted;

显示排序后的队列。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值