数据结构(队列的封装)

118 阅读1分钟

队列 一种遵循先进先出(FIFO)原则的一组有序的项

下面是我在学习队列的过程中,封装的队列数据结构

        class Queue {
            constructor() {
                this.count = 0
                this.item = {}
                this.first = 0
            } 
            enqueue(e) {
                this.item[this.count] = e
                this.count++
            }
            size() {
                return this.count - this.first
            }
            isEmpty() {
                return this.count - this.first === 0
            }
            dequeue() {
                if(this.isEmpty()) {
                    return undefined
                }else {
                     let res = this.item[this.first]
                     delete this.item[this.first]
                     this.first++
                     return res
                }
               
            }
           toString() {
               if(this.isEmpty()) {
                   return ""
               }else {
                   let res = ""
                   for(let key in this.item) {
                       res += this.item[key]
                   }
                   return res
               }
           }
        }
        let q = new Queue()
        q.enqueue('1')
        q.enqueue('2')
        q.enqueue('3')
        q.enqueue('4')
        console.log(q);
        console.log(q.dequeue());
        console.log(q.toString());

这只是简单的封装了一个队列数据结构,这里我使用的是对象的方法来保存队列中的数据,也可以使用数组来封装。 参考书籍:《学习JacaScript数据结构与算法》(第三版)