js算法练习--队

 //一般队列
        class queue {
            constructor() {
                this.list = [];
            }

            //入队
            EnQueue(item) {
                this.list.push(item);
            }
            //出队
            Dequeue() {
                return this.list.shift();
            }
            //第一个元素值
            GetFront() {
                return this.list[0];
            }
            //长度
            GetSize() {
                return this.list.length;
            }
            //是否为空
            GetIsEmpty() {
                return this.list.length == 0;
            }
            // 清空
            Clear() {
                this.list = [];
            }
            //读取元素
            Read() {
                console.log(this.list.toString());
            }
        }

        let queueTest = new queue();
        queueTest.GetIsEmpty();//true
        queueTest.EnQueue(1);
        queueTest.EnQueue(2);
        queueTest.EnQueue(3);
        queueTest.Read();//1,2,3
        queueTest.Dequeue();//1
        queueTest.Read();//2,3

        //优先队列:1:老年人和孕妇(或 带小孩的妇女)登机时也享有高于其他乘客的优先级;
        //医生会优先处理病情比较严重的患者
        class PriorityQueue {
            constructor() {
                this.list = [];
            }

            //入队
            EnQueue(item, priority) {
                var f = { item: item, index: priority };
                if (this.list.length == 0)
                    this.list.push(f);
                else {
                    var position = this.list.findIndex(x => x.index > f.index);
                    if (position == -1)
                        this.list.push(f);
                    else
                        this.list.splice(position, 0, f);
                }
            }
            //出队
            Dequeue() {
                return this.list.shift();
            }
            //第一个元素值
            GetFront() {
                return this.list[0];
            }
            //长度
            GetSize() {
                return this.list.length;
            }
            //是否为空
            GetIsEmpty() {
                return this.list.length == 0;
            }
            // 清空
            Clear() {
                this.list = [];
            }
            //读取元素
            Read() {
                console.log(this.list);
            }
        }
        var priorityQueue = new PriorityQueue();
        priorityQueue.GetIsEmpty();//true;
        priorityQueue.EnQueue(1, 1);
        priorityQueue.EnQueue(2, 2);
        priorityQueue.EnQueue(22, 3);
        priorityQueue.EnQueue(22, 5);
        priorityQueue.Read();//[{item:1,index:1},{item:2,index:2},{item:22,index:3},{item:22,index:5}]
        priorityQueue.EnQueue(33, 4);
        priorityQueue.Read();//[{item:1,index:1},{item:2,index:2},{item:22,index:3},{item:22,index:4},{item:22,index:5}]
        priorityQueue.Dequeue();//{item:1,index:1}
        //循环队列
        //为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。
        class LoopQueue extends queue {

            constructor(items) {
                super(items)
            }

            getIndex(index) {
                const length = this.list.length
                return index > length ? (index % length) : index
            }

            find(index) {
                return !this.isEmpty ? this.list[this.getIndex(index)] : null
            }
        }
        var loopQueue=new LoopQueue();
        loopQueue.EnQueue(1);
        loopQueue.EnQueue(2);
        loopQueue.EnQueue(3);
        loopQueue.Read();//1,2,3
        loopQueue.find(7);//2

 

转载于:https://www.cnblogs.com/shuajing/p/11319041.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值