JavaScript數據結構之隊列

class Queue{
  constructor() {
    this.count = 0
    this.list = {}
    this.lowestCount=0
  }
  //往隊列添加元素
  enqueue (element) {
    this.list[this.count] = element
    this.count++
  }
  //檢測隊列是否為空
  isEmpty () {
    return this.count-this.lowestCount===0
  }
  //從隊列里移除元素
  dequeue () {
    if (this.isEmpty()) {
      return undefined
    }
    const result = this.list[this.lowestCount]
    delete this.list[this.lowestCount]
    this.lowestCount++
    return result
  }
  //查看隊列頭元素
  peek () {
    if (this.isEmpty()) {
      return undefined
    }
    return this.list[this.lowestCount]
  }
  //獲取隊列長度
  size () {
    return this.count - this.lowestCount 
  }
  //清空隊列
  clear () {
    this.list = {}
    this.count = 0
    this.lowestCount=0
  }
  //字符串方法
  toString () {
    if (this.isEmpty()) {
      return ''
    }
    let str = `${this.list[this.lowestCount]}`
    for (let i = this.lowestCount + 1; i < this.count; i++){
      str+=`,${this.list[i]}`
    }
    return str
  }
  //
}
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容